Immutable String に関する多くの Q&A で、次の操作を行うと JVM が実際に新しい参照を作成すると言っています。
String text = "apple";
text = "orange"; // a new reference is created
私の質問は、前の参照「リンゴ」はどうなりますか? Java Garbage Collection は自動であるため、メモリを再利用する意図的な方法がないということですか?
編集:私がこの質問をしている理由は、将来、文字列変数をどのように処理すればよいか知りたいからです。
文字列リテラルは GC によってクリアされますか? そうでない場合、メモリ不足になるまでプールが非常に大きくなるのではないでしょうか? プログラムが UI のテキスト ボックスから異なる文字列値を受け取るかどうかを考慮すると、ユーザーが入力するそれぞれの異なる値がプールに追加されます。