当我运行以下示例时,我得到输出0,2,1
class ZiggyTest2{
static int f1(int i) {
System.out.print(i + ",");
return 0;
}
public static void main(String[] args) {
int i = 0;
int j = 0;
j = i++; //After this statement j=0 i=1
j = j + f1(j); //After this statement j=0 i=1
i = i++ + f1(i); //i++ means i is now 2. The call f1(2) prints 2 but returns 0 so i=2 and j=0
System.out.println(i); //prints 2?
}
}
Run Code Online (Sandbox Code Playgroud)
我不明白为什么输出是0,2,1而不是0,2,2
我正在尝试创建一个简单的Spring Web服务,在调用时返回文件附件作为SOAP响应的一部分.Enpoint类如下所示:
最后是终点
@PayloadRoot(namespace="http://ws.mypackage.com", localPart="downloadMessageRequest")
@ResponsePayload
public JAXBElement<DownloadResponseType> invoke(@RequestPayload DownloadMessageRequest req) throws Exception {
DownloadResponseType response = new DownloadResponseType();
DownloadResponseType.PayLoad payload = new DownloadResponseType.PayLoad();
javax.activation.DataHandler dataHandler = new javax.activation.DataHandler(new FileDataSource("c:\\temp\\maven-feather.png"));
payload.setMessagePayLoad(dataHandler);
response.setPayLoad(payload);
return objectFactory.createDownloadMessageResponse(response);
}
Run Code Online (Sandbox Code Playgroud)
我希望响应将文件包含为类似于以下响应的附件:
Content-Type: multipart/related; boundary=MIMEBoundary4A7AE55984E7438034;
type="application/xop+xml"; start="<0.09BC7F4BE2E4D3EF1B@apache.org>";
start-info="text/xml; charset=utf-8"
--MIMEBoundary4A7AE55984E7438034
content-type: application/xop+xml; charset=utf-8; type="application/soap+xml;"
content-transfer-encoding: binary
content-id: <0.09BC7F4BE2E4D3EF1B@apache.org>
<?xml version='1.0' encoding='utf-8'?>
<soapenv:Envelope xmlns:soapenv="...."....>
........
<xop:Include href="cid:1.A91D6D2E3D7AC4D580@apache.org"
xmlns:xop="http://www.w3.org/2004/08/xop/include">
</xop:Include>
........
</soapenv:Envelope>
--MIMEBoundary4A7AE55984E7438034
content-type: application/octet-stream
content-transfer-encoding: binary
content-id: <1.A91D6D2E3D7AC4D580@apache.org>
Binary Data.....
--MIMEBoundary4A7AE55984E7438034--
Run Code Online (Sandbox Code Playgroud)
我试图遵循spring-ws示例中的文档和示例代码,由于某种原因,我得到的输出总是这样(即base64数据不是附件.
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1 …Run Code Online (Sandbox Code Playgroud) 我需要得到上周一和周五的日期.为此,我将获得本周一的日期并减去7天.这给了我上周一的星期一.
为了得到星期五的日期,我必须加上4.这让我感到困惑,因为出于某种原因,一周的第一天是星期日,而不是星期一在英国.
无论如何,这是我如何得到日期.
// Get the dates for last MON & FRI
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
cal.add(Calendar.DAY_OF_WEEK, -7);
cal.set(Calendar.HOUR_OF_DAY,0);
cal.set(Calendar.MINUTE,0);
cal.set(Calendar.SECOND,0);
cal.set(Calendar.MILLISECOND,0);
// Get the date on Friday
cal.add(Calendar.DAY_OF_WEEK, 4);
cal.set(Calendar.HOUR_OF_DAY,23);
cal.set(Calendar.MINUTE,59);
cal.set(Calendar.SECOND,59);
cal.set(Calendar.MILLISECOND,0);
Run Code Online (Sandbox Code Playgroud)
上述工作,但我感兴趣,如果逻辑有任何问题.即它适用于Februarys,闰年等.
随意建议更好的解决方案/方法.
谢谢
我试图回顾不同的可用wiki引擎,并对基于java的引擎感兴趣.你能推荐或列出任何基于java的wiki引擎,以便我可以检查出来.
我熟悉以下JSPWIKi,Elsie.
谢谢
在PL/SQL中,a varray可以在创建时初始化为:
TYPE colour_tab IS VARRAY(3) OF VARCHAR2(20);
french_colours colour_tab := colour_tab('RED','WHITE','BLUE');
Run Code Online (Sandbox Code Playgroud)
PL/SQL记录类型是否有等效的初始化方法?
type location_record_type is record (
street_address varchar2(40),
postal_code varchar2(12),
city varchar2(30),
state_province varchar2(25),
country_id char(2) not null := 'US'
);
Run Code Online (Sandbox Code Playgroud) 创建了多少个String对象
我正在为SCJP学习,我似乎无法理解这个String问题.我似乎看到几个可能的答案取决于我如何看待问题.
在以下初始化中,创建了多少个字符串对象?
String s1 = "A" + "B" + "C" + "D";
System.out.println(s1)
Run Code Online (Sandbox Code Playgroud)
最初我认为5个对象,即
"A"
"B"
"C"
"D"
"ABCD"
Run Code Online (Sandbox Code Playgroud)
但是后来考虑一下我不太确定,因为例如编译器会连接"A" + "B"成一个对象吗?即创建7个对象?
"A"
"B"
"C"
"D"
"AB"
"ABC"
"ABCD"
Run Code Online (Sandbox Code Playgroud)
此外,如果代码更改为,将创建多少个对象
String s1 = new String("A" + "B" + "C" + "D");
System.out.println(s1);
Run Code Online (Sandbox Code Playgroud)
最后怎么样:
String s1 = "A";
String s2 = new String("A");
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,我认为只会创建2个对象
object 1 - "A"
object 2 - a String object that refers to the "A" object above.
Run Code Online (Sandbox Code Playgroud)
这是正确的还是不相关?即,从常量池引用的对象将不同于s2引用所引用的对象.
谢谢
此外,请注意我有兴趣知道创建的对象总数,包括那些被丢弃的对象,而不仅仅是那些最终在常量池中结束的对象.
看看Jon的回答,我可能完全误解了对象的创建方式.我知道String只在常量池中创建一次并且它被重用但是我不确定在构造'final'字符串时经历的过程.以下是我正在阅读的书中的部分,它似乎表明临时对象的创建与此处的答案完全相反.(或者这本书错了或我误解了这本书)
代码示例是 …
在以下示例中:
class ZiggyTest2{
public static void main(String[] args){
int[] a = { 1, 2, 3, 4,7};
List<Integer> li2 = new ArrayList<Integer>();
li2 = Arrays.asList(a);
}
}
Run Code Online (Sandbox Code Playgroud)
编译器抱怨int []和java.lang.Integer不兼容.即
found : java.util.List<int[]>
required: java.util.List<java.lang.Integer>
li2 = Arrays.asList(a);
^
Run Code Online (Sandbox Code Playgroud)
如果我更改List定义以删除泛型类型,它工作正常.
List li2 = new ArrayList();
Run Code Online (Sandbox Code Playgroud)
List<Integer>使用Arrays.asList()从int数组创建对象?谢谢
我想尝试了解JMS的工作原理.我正在阅读教程并创建了Producer/Consumer java类,但不确定如何创建JMS队列.我下载了jboss-as-web-7.0.2.Final,我认为它有HornetQ.到目前为止,我还没有任何地方,因为我无法弄清楚如何添加队列.
根据此文档https://docs.jboss.org/author/display/AS7/Messaging+configuration,可以使用add-jms-queue命令添加队列.我尝试过但它会产生错误.
[standalone@localhost:9999 /] add-jms-queue --name=sampleQueue --entries=queue/sampleQueue
The command is not available in the current context (e.g. required subsystems or connection to the controller might be unavailable).
Run Code Online (Sandbox Code Playgroud)
我也无法通过GUI上的管理控制台找到添加队列的选项.
有任何想法吗?
谢谢
CREATE TABLE LOG_FILES (
LOG_DTM VARCHAR(18),
LOG_TXT VARCHAR(300)
)
ORGANIZATION EXTERNAL(
TYPE ORACLE_LOADER
DEFAULT DIRECTORY LOG_DIR
ACCESS PARAMETERS(
RECORDS DELIMITED BY NEWLINE
FIELDS(
LOG_DTM position(1:18),
LOG_TXT position(19:300)
)
)
LOCATION('logadm'))
)
REJECT LIMIT UNLIMITED
/
Run Code Online (Sandbox Code Playgroud)
LOG_DIR是指向的oracle目录 /u/logs/
但问题是内容/u/logs/看起来像这样
logadm_12012012.log
logadm_13012012.log
logadm_14012012.log
logadm_15012012.log
Run Code Online (Sandbox Code Playgroud)
有没有办法可以动态指定文件的位置?即每次运行Select * from LOG_FILES它都应该使用当天的日志文件.(例如log_adm_DDMMYYYYY).
我知道我可以使用,alter table log_files location ('logadm_15012012.log')但我不想发出alter命令.
还有其他可能吗?
谢谢
有没有我可以下载maven eclipse插件的地方,以便我可以手动安装它而无需使用更新站点?插件的下载站点http://eclipse.org/m2e/download/仅提供有关如何直接从Eclipse IDE下载它的信息,但不提供如何将其作为Zip文件下载的信息.
我需要将它安装在没有连接到外部世界的服务器上,所以我需要将其作为zip存档下载然后手动安装.
谢谢
我还发现Maven插件预装了Eclipse用于JAVA开发人员,而不是Eclipse用于JAVA EE开发人员.(我正在使用的是哪一个).
@Soulcheck - 我尝试了你的建议,但它出现了错误.我使用的命令是
java -jar -DproxySet=true -DproxyHost=myproxyHost -DproxyPort=8080 plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar -application org.eclipse.update.core.standaloneUpdate -command mirror -from http://download.eclipse.org/technology/m2e/releases -to C:\wresource\home\res.nosynch\temp.todel\m2e
Run Code Online (Sandbox Code Playgroud)
我添加了代理的选项,因为这是获得外部连接所必需的.错误如下所示:您认为URL可能错误吗?
!SESSION 2012-02-01 16:14:08.581 -----------------------------------------------
eclipse.buildId=M20110909-1335
java.version=1.6.0_29
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_GB
Framework arguments: -application org.eclipse.update.core.standaloneUpdate -command mirror -from http://download.eclipse.org/technology/m2e/releases -to C:\wresource\home\res.nosynch\temp.todel\m2e
Command-line arguments: -application org.eclipse.update.core.standaloneUpdate -command mirror -from http://download.eclipse.org/technology/m2e/releases -to C:\wresource\home\res.nosynch\temp.todel\m2e
!ENTRY org.eclipse.update.core 4 0 2012-02-01 16:14:12.213
!MESSAGE Unable to access "http://download.eclipse.org/technology/m2e/releases".
!STACK 1
org.eclipse.core.runtime.CoreException: Error parsing …Run Code Online (Sandbox Code Playgroud)