小编Dar*_*tel的帖子

Java字符串真的是不可变的吗?

我们都知道StringJava 中是不可变的,但请检查以下代码:

String s1 = "Hello World";  
String s2 = "Hello World";  
String s3 = s1.substring(6);  
System.out.println(s1); // Hello World  
System.out.println(s2); // Hello World  
System.out.println(s3); // World  

Field field = String.class.getDeclaredField("value");  
field.setAccessible(true);  
char[] value = (char[])field.get(s1);  
value[6] = 'J';  
value[7] = 'a';  
value[8] = 'v';  
value[9] = 'a';  
value[10] = '!';  

System.out.println(s1); // Hello Java!  
System.out.println(s2); // Hello Java!  
System.out.println(s3); // World  
Run Code Online (Sandbox Code Playgroud)

为什么这个程序运行这样?为什么价值s1s2变化,但不是s3

java string reflection immutability

391
推荐指数
11
解决办法
5万
查看次数

serialVersionUID应该是不同类的唯一吗?

class A implements Serializable{
    private static final long serialVersionUID = 5L;
    ...
}
Run Code Online (Sandbox Code Playgroud)

class B implements Serializable{
    private static final long serialVersionUID = 6L;
    ...
}
Run Code Online (Sandbox Code Playgroud)

那么有必要给serialVersionUID这两个类赋予独特性.

那么我可以分配serialVersionUID = 5L两个班级吗?

我读了以下链接

为什么要生成long serialVersionUID而不是简单的1L?

什么是serialVersionUID,我为什么要使用它?

java serialization

17
推荐指数
2
解决办法
7296
查看次数

创建日期不会在删除文件时更改,然后创建文件

由于某种原因,我必须删除旧文件并根据我们的客户端创建新文件

修改日期是更改为当前时间,但创建日期不会更改为当前时间.

在此输入图像描述 我的代码如下

  public static void main(String args[]) throws Exception {
    FileUtils.deleteQuietly(new File("d:\\inbox\\json\\test.txt"));
    FileWriter fileWriter = new FileWriter("d:\\inbox\\json\\test.txt", false);
    fileWriter.append(new Date().toString());
    fileWriter.close();
  }
Run Code Online (Sandbox Code Playgroud)

此代码删除旧数据并写入新数据

但为什么日期创建的时间不会改变..

请帮我弄清楚我的代码有什么问题.提前致谢.

java file

6
推荐指数
1
解决办法
1422
查看次数

java 1.8与java 1.7兼容性问题

Java 1.7在我的代码中使用,现在我想替换JAVA 1.7JAVA 1.8.Is Java 1.8兼容Java 1.7.? 它会像以前一样工作吗?我的意思是,Java 1.8的所有新功能都可以用在现有的代码中吗?

java

6
推荐指数
1
解决办法
1万
查看次数

Groovy生成的类名

我正在使用Java + Groovy脚本。是否可以更改由Groovy类名称(Script1.groovy,Script777.groovy等)生成的值?如果出现异常,很难找到正确的脚本:/

Caused by: org.json.JSONException: JSONObject["value14"] not found.
at org.json.JSONObject.get(JSONObject.java:498)
at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at org.codehaus.groovy.runtime.metaclass.MethodMetaProperty$GetMethodMetaProperty.getProperty(MethodMetaProperty.java:59)
at org.codehaus.groovy.runtime.callsite.GetEffectivePojoPropertySite.getProperty(GetEffectivePojoPropertySite.java:61)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:227)
at Script4.run(Script4.groovy:23)
at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:346)
... 13 more
Run Code Online (Sandbox Code Playgroud)

java groovy groovyshell jsonobject

4
推荐指数
1
解决办法
797
查看次数

使用Camel生成soap请求

我想使用wsdl文件从camel调用第三方web服务,而不使用任何生成客户端代码(因为我认为如果我提供wsdl文件,那么我们可以生成我们之前生成的客户端,并且在我们的旧代码中工作)

经过长时间的搜索,我找到了一些帮助我实现目标的代码

代码是

import org.apache.camel.CamelContext;
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
import org.apache.camel.ProducerTemplate;
import org.apache.camel.dataformat.soap.Soap11DataFormatAdapter;
import org.apache.camel.dataformat.soap.Soap12DataFormatAdapter;
import org.apache.camel.dataformat.soap.name.ServiceInterfaceStrategy;
import org.apache.camel.impl.DefaultCamelContext;
import org.apache.camel.model.dataformat.SoapJaxbDataFormat;

import com.camel.model.Application;
public class TestMain {
    static CamelContext context;

    public static void main(String args[]) throws Exception {
        CamelContext context = new DefaultCamelContext();
        ProducerTemplate template = context.createProducerTemplate(0);
        context.start();
        String url="cxf://http://localhost:8081/buzzor-service/services/ApplicationService?" +
          "wsdlURL=http://localhost:8081/buzzor-service/services/ApplicationService?wsdl&" +
          "serviceName={http://service.application.buzzor.atpl.com}ApplicationService&" +
          "portName={http://service.application.buzzor.atpl.com}ApplicationServiceHttpPort&" +
          "dataFormat=MESSAGE";
        Exchange reply = sendSimpleMessage(template, url);
        org.apache.camel.Message out = reply.getOut();
        String result = out.getBody(String.class);

        System.out.println(result);
        Thread.sleep(10000);
        context.stop();
    }

    private static Exchange sendSimpleMessage(ProducerTemplate template, …
Run Code Online (Sandbox Code Playgroud)

java soap web-services cxf apache-camel

3
推荐指数
1
解决办法
2万
查看次数

与Statement Object的setFetchSize方法混淆

最初,我问了这个问题

我通过设置fetchSize来解决这个Integer.MIN_VALUE问题,但我对此有一些疑问

  1. 当我将fetchSize设置为10或另一个正整数然后它不起作用,在设置它工作后Integer.MIN_VALUE,为什么这样?
  2. 如果我们设置负值,则它给非法值错误,但Integer.MIN_VALUE就是-2147483648那么,为什么不给错误?
  3. 此表包含600万条记录,我resultset在获取100或200条记录后关闭,然后需要30-35秒的时间.
  4. 减少关闭时间的解决方案resultset.

我想在这里添加更多内容我已经用MySQL驱动程序对它进行了测试并且它接受Integer.MIN_VALUE 但是当我在SQL服务器中测试相同的代码时它会给出错误The fetch size cannot be negative.,如果我将其设置为10然后它可以工作,它也适用于Oracle.

java resultset prepared-statement

1
推荐指数
1
解决办法
1278
查看次数