String s = new String("abc"); 这个是在堆(new)内存中创建了abc,还有在字符串常量池中也创建了abc,所以有2个对象,s是存储的对应的堆内存的地址指向.
---------------------------------------------------------
String s1 = new String("abc"); 这里s1和上面的s情况是一样的,但是在下面的s2中,字符串常量池中不会创建abc,因
String S2 = new String("abc"); 为已经存在.所以s2只在堆内存中创建了一个对象 ,所以是不是创建2个对象,要看具体情况 |