如果我这样做
String one = "hai";
String Two = "hai";
是String Two只引用字符串1(与“hai存储”相同的内存位置)或者是否在其他地方创建了一个“hai”的新副本并指向它?
答案 0 :(得分:12)
String one = "hai";
String two = "hai";
在Java中,字符串存储在常量池中,因此即使您按上述方式分配它们,它们仍然会引用同一个对象。
答案 1 :(得分:8)
这是同一个实例。您只是创建对同一对象的另一个引用
答案 2 :(得分:2)
String Two只是引用内存中的同一个对象。
答案 3 :(得分:0)
两个字符串变量指向堆内存中的相同数据。所以在堆内存中将一个和两个字符串指向hai。
答案 4 :(得分:0)
现在即使你这样做了
one=null;
然后“hai”将保留在内存中,变量2将引用该位置。 我希望它能清除这个概念。 :)