String str = new String() ;这句话创建几个对象
我只知道String str = new String(“abc”) ;先在字符串池找"abc",如果不存在,就创建一个,然后把它拷贝一个到堆中。但如果想String str = new String() ;这样不带参数的我就不知道它是怎样创建的??创建几个??

解决方案 »

  1.   

    String str = new String();创建了一个对象
    String str = new String(“abc”) ;创建了两个对象,因为它相当于new String(new String());
      

  2.   

    String str = new String() ;
    String str = new String(“abc”) ;
    都是只创建一个对象。
    即时你连续执行2次
    String str = new String(“abc”) ;
    str = new String(“abc”) ;都不会是返回同一个对象,而是2个不同对象,在你创建第二个对象时,第一个对象如果没有别人引用,就会作为待垃圾回收的对象,不过这2个对象是相等的 equals的
      

  3.   

    String str = new String() ;
    String str = new String(“abc”) ;
    都是只创建一个对象。
    即时你连续执行2次
    String str = new String(“abc”) ;
    str = new String(“abc”) ;都不会是返回同一个对象,而是2个不同对象,在你创建第二个对象时,第一个对象如果没有别人引用,就会作为待垃圾回收的对象,不过这2个对象是相等的 equals的
    把女朋友打扮成清纯公主