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