有没有办法得到丢失的字符串?

时间:2014-04-23 07:18:11

标签: java string

我创建了一个字符串

String str="ashish";

现在为str分配了另一个字符串文字。

str="mehara"

现在有没有办法让我们得到已经丢失的值"ashish"?如果没有,那么这个丢失的字符串文字"ashish"会发生什么?

2 个答案:

答案 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混合在一起。也就是说,它最终会被垃圾收集,无法再被访问。