私のアプリケーションは、クラス A などのクラスのインスタンスを多数作成します。すべてのインスタンスには文字列が含まれており、それらのほとんどには同じ文字列が含まれています。
class A {
String myString;
}
JVMは「すべての等しい文字列」を、一度だけ格納された同じ文字列を指すようにすることを知っています。私の A インスタンスの 1 つの myString フィールドが上書きされた場合、元の文字列への参照が新しい文字列値への参照に置き換えられ、すべてが期待どおりに機能します。
この動作は準拠している JVM に必要ですか、それとも jvm から別のバージョンへ、またはバージョンからバージョンへと変更される可能性のある jvm の一種の改善ですか?
別の言い方をすれば、非常に冗長な (文字列ベースの) データ構造を設計する場合、コピー オン ライト メカニズムだけに頼るべきか、それともアプリケーション レベルで何かを配置することをお勧めしますか?