我看到很多关于 Immutable String 的问答说当我们执行以下操作时 JVM 实际上会创建一个新引用:
String text = "apple";
text = "orange"; // a new reference is created
我的问题是,以前的参考“苹果”会发生什么?既然Java Garbage Collection 是自动的,那是否意味着没有有意的方式来回收内存呢?
编辑:我问这个问题的原因是我想知道将来应该如何处理字符串变量。
字符串文字是否被 GC 清除?如果没有,池会不会变得如此之大,直到它耗尽内存?考虑如果程序从 UI 上的文本框中接收到不同的字符串值,用户输入的每个不同的值都将添加到池中。