是的,这样只创建了一个aaa对象,c4和c5都指向这个对象
其实你也可以测试一下:
if(c4 == c5)
.....
如果是:
String a = new String("aaa");
String b = new String("aaa");
那就是2个对象了
是的,在字符串常量池共享一个“aaa”,如果是new出来的话则创建了两个对象
可能是一个,也可能一个都没建。如果在String池里没aaa这个字符串的话,你这两句就会建一个对象,这个对象就是池中的"aaa"这个。如果实现池里有"aaa"这个的话,那就把池中的这个"aaa"的引用给你c4 c5,所以一个对象都没建。