【发布时间】:2014-04-30 21:37:02
【问题描述】:
我知道字符串存储在堆上,而对它们的引用存储在堆栈上。因此,在下面的代码中,one 将指向堆栈中的堆上的"John",同样two 将指向堆栈中的堆上的"Smith"。
那么当我执行one = two 时会发生什么?
one 现在是否指向two 指向的位置,因为two 包含对堆上的点的引用,还是将堆上的"John" 更改为"Smith"?
String one;
one = "John";
String two = "Smith"
one = two;
【问题讨论】:
-
如果没有必要,为什么要保留相同字符串的 2 个版本?
-
您的问题与堆栈上的内容和堆上的内容无关。您可以通过删除对两者的引用来使其更清晰。