0

Strings不変オブジェクトであり、文字列プールに格納されます。アプリケーションで、new演算子を使用して文字列が作成されていないとします。この場合、オブジェクトの等価性チェックの代わりにメソッドを使用する必要がありますかequals? 上記の質問の答えはおそらく「はい」であり、文字列プールのサイズと関係があると思います。String プールはどのように管理されますか? メモリが限られているので、文字列プールも一定のサイズを持っているように感じます。プールがいっぱいになると、使用頻度の低い文字列を破棄して、キャッシュのように機能しますか?==StringLRU

貴重な情報を提供してください。

私の質問は、文字列プールのサイズに関するものではありません。私の質問は、 new 演算子を使用して作成された文字列がない場合、 == を使用すると常に安全になるということです。このステートメントは正しいですか、この場合、同じ文字列文字を持つ 2 つの文字列参照が false を返す可能性があります。常に equals メソッドを使用する必要がある設計は知っていますが、言語仕様を知りたいだけです。

4

1 に答える 1