ホームページ > Java > &#&チュートリアル > Java で `String#intern()` を使用する必要があるのはどのような場合ですか?

Java で `String#intern()` を使用する必要があるのはどのような場合ですか?

Mary-Kate Olsen
リリース: 2024-12-26 06:06:14
オリジナル
922 人が閲覧しました

When Should You Use `String#intern()` in Java?

文字列リテラルで String#intern() を使用する場合

String#intern() は、文字列プールから既存の文字列を返します。存在するか、追加して、追加された参照を返します。文字列リテラルは自動的にインターンされますが、特定のシナリオでは intern() を手動で呼び出す必要がある場合があります。

文字列リテラルの自動インターニング

提供されたサンプル コードでは:

String s1 = "Rakesh";
String s2 = "Rakesh";
String s3 = "Rakesh".intern();
ログイン後にコピー

s1 と s3 はどちらも同じ文字列を表します。 interning は Java の文字列リテラルに暗黙的に適用されます。これが、s1 == s2 と s1 == s3 の両方の行が true と評価される理由です。

intern() の使用例

intern() の使用が関連します。文字列リテラルではない文字列を扱う場合。例:

String s1 = "Rakesh";
String s2 = "Rakesh";
String s3 = new String("Rakesh");
String s4 = new String("Rakesh").intern();
ログイン後にコピー

この例では、自動インターニングまたは intern() の明示的な呼び出しにより、s1、s2、および s4 は定数プール内の同じ String を表します。ただし、s3 は定数プールにない新しい String インスタンスを参照します。

s4 で intern() を明示的に呼び出すことにより、「Rakesh」が String プールにすでに存在するかどうかを効果的にチェックします。そうでない場合は、それを追加し、追加された文字列の参照を返します。これにより、メモリ内の重複した String オブジェクトが減り、文字列の等価比較が促進されるため、String の使用が最適化されます。

以上がJava で `String#intern()` を使用する必要があるのはどのような場合ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート