String s = "abc"; 和 String s = new String("abc"); 应该是一样的
如果是String a = "ABC",编译器会先在string缓冲池中寻找是否有字符串"ABC",如果有就赋予a一个指向改字符串的引用,所以 String a = new String("ABC"); String b = "ABC" a和b指向地址是相同,即a==b返回true如果是String a = new String("ABC"),则不管如何都会产生一个新的String对象
a = "abc"; a的句柄指向"abc"对象
"abc"也是一个String对象
a以前的new String()已经可以被垃圾回收了清楚否
a="abc";//分配内存
String a=new String("abc");//定义并分配内存
和
String s = new String("abc");
应该是一样的
String a = new String("ABC");
String b = "ABC"
a和b指向地址是相同,即a==b返回true如果是String a = new String("ABC"),则不管如何都会产生一个新的String对象