文字列リテラルインターニングと intern() メソッド
Java には、文字列リテラルインターニングとして知られる便利な機能があり、文字列リテラルを自動的に格納します。文字列プール。ただし、intern() メソッドは、String を管理するための重要なツールであることに変わりはありません。
intern() メソッドは、プールに String が存在する場合、プールから String をフェッチすることを目的としています。そうでない場合は、新しい String オブジェクトがプールに追加され、そのオブジェクトへの参照が返されます。
String リテラルはデフォルトでインターンされますが、intern() メソッドは new String() で作成された String にとって価値があります。 。次の例を考えてみましょう。
String s1 = "Rakesh"; String s2 = "Rakesh"; String s3 = "Rakesh".intern(); String s4 = new String("Rakesh"); String s5 = new String("Rakesh").intern();
これらの変数に == 演算子を使用すると、次の結果が生成されます。
s1 and s2 are same s1 and s3 are same s1 and s5 are same
ここで、s4 のみが異なる動作をします。これは、s4 が new と を使用して明示的に作成されたためです。
結論として、intern() メソッドは、単一の不変 String インスタンスのみが返されることを保証します。 new を使用して intern() 呼び出しを省略する場合を除き、String の作成方法に関係なく、String 定数プール。
以上が文字列管理における Java の `intern()` メソッドの役割は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。