-2

可能重复:
Java 字符串池对象创建

如果我做

String one = "hai";
String Two = "hai";

字符串二是仅指字符串一(与“存储hai”相同的内存位置)还是在其他地方创建了“hai”的新副本并指向它?

4

5 回答 5

12
String one = "hai";
String two = "hai";

在 Java 中,字符串存储在常量池中,因此即使您按上述方式分配它们,它们仍将引用同一个对象。

于 2012-11-27T10:55:24.423 回答
8

这是同一个例子。您只是在创建对同一对象的另一个引用

于 2012-11-27T10:53:48.307 回答
2

字符串二只是指内存中的同一个对象。

于 2012-11-27T10:54:21.503 回答
0

指向堆内存中相同数据的两个字符串变量。因此,在堆内存中将字符串 1 和 2 指向 hai。

于 2012-11-27T10:57:50.000 回答
0

现在即使你这样做

one=null;

然后“hai”也将保留在内存中,变量 2 将引用该位置。我希望它清除了这个概念。:)

于 2012-11-27T11:05:12.657 回答