private String s=new String("Constructed");和
private String s="Constructed";有什么区别?
不都是基本型别的定义和附值吗?
还望多多指点  在线等!!!!!!!!!

解决方案 »

  1.   

    private String s=new String("Constructed");和
    private String s="Constructed";有什么区别?String是一个不变的对象,如果存在一个String那么它就用存在的,如果没有存在,那么就会新建立一个
    比如
    String A= "a test"
    String B= "a test"
    那么
    A==B
    就是Trueprivate String s1=new String("Constructed");新建立一个,然后放到共享池一个
    private String s="Constructed";
    使用共享池里面的
      

  2.   

    public class testString{
    public static void main(String[] arg){
    String A=new String("a test");
    String B="a test";
    System.out.println(A==B);
    String C ="b test";
    String D ="b test";
    System.out.println(C==D);
    }
    }
    你可以看看这个结果就知道了:)
      

  3.   

    false
    true
    有点不明白,为什么第一个是false
      

  4.   

    private String s1=new String("Constructed");新建立一个,然后放到共享池一个
    private String s="Constructed";
    使用共享池里面的第一次听共享池  不明白!   什么意思?
      

  5.   

    在java中,相同的字符串在内存中只有一份,所有内容相同的String都是引用同一个。
    例如,String a="abc"定义了a之后,内存中有了一份"abc",当再定义一个String b="abc"时,java并不生成一个新的"abc",而是直接引用原来的那个,所以,a和b都是指向同一个对象的引用。而使用new String("")则会创建一个新的对象。Java中对String的处理是比较特殊的。
    楼主的代码好像是<<thinking in java>>中的,你可以看看这本书附录A中的read-only classes这一节,以及<<Effective Java>>的条款4,有更详细的介绍。