String c4 = "aaa";String c5 = "aaa";这样的话就是只创建了一个对象,对么?

请达人解释下,谢了
2025-05-18 21:12:00
推荐回答(3个)
回答1:

是的,这样只创建了一个aaa对象,c4和c5都指向这个对象
其实你也可以测试一下:
if(c4 == c5)
.....

如果是:
String a = new String("aaa");
String b = new String("aaa");

那就是2个对象了

回答2:

是的,在字符串常量池共享一个“aaa”,如果是new出来的话则创建了两个对象

回答3:

可能是一个,也可能一个都没建。如果在String池里没aaa这个字符串的话,你这两句就会建一个对象,这个对象就是池中的"aaa"这个。如果实现池里有"aaa"这个的话,那就把池中的这个"aaa"的引用给你c4 c5,所以一个对象都没建。