我创建了一个字符串
String str="ashish";
现在为str
分配了另一个字符串文字。
str="mehara"
现在有没有办法让我们得到已经丢失的值"ashish"
?如果没有,那么这个丢失的字符串文字"ashish"
会发生什么?
答案 0 :(得分:3)
现在有什么方法可以让我们获得已经丢失的“ashish”值吗?
你会怎么做?您如何指定要检索的“丢失”字符串?如果你说给我一个旧的“ashish”字符串,那么你已经知道它是“ashish”,所以它永远不会丢失:
String str = "ashish";
str = "mehara";
str = "ashish";
如果您只想存储以前的值,则必须编写代码来执行此操作:
String str = "ashish";
String previous = str;
str = "mehara";
str = previous;
如果没有,那么这个丢失的字符串文字“ashish”会发生什么?
没有必要发生任何事情,你再也无法进入。 Java的字符串文字存储在string pool中,该JVM specification位于运行时常量池中,{{3}}状态不一定需要进行垃圾回收。
然而,无论是否收集垃圾,从您的角度来看,它发生了什么并不重要。如果删除对它的所有引用,您就不能再访问它了。这就像在酒吧遇到某人并在餐巾纸上写下他们的电话号码,然后丢失餐巾纸。这个人可能仍然存在,但你无法打电话给他们(无赖)。解决办法是不要丢失卫生巾,或先记住他们的电话号码。
答案 1 :(得分:1)
不,该字符串在遗忘中丢失,与计算机内部浮动的所有其他1和0混合在一起。也就是说,它最终会被垃圾收集,无法再被访问。