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

Java 文字列の `intern()` メソッドを使用する必要があるのはどのような場合ですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-06 10:37:11680ブラウズ

When Should You Use the `intern()` Method for Java Strings?

文字列リテラルのインターン メソッドを使用する場合

リテラル構文 ("String") を使用して作成された文字列は、自動的に String プールにインターンされます。 JVMによる。その結果、== 演算子は文字列リテラルに対して一貫して動作します。

ただし、new String() で作成された文字列に対してインターンは自動的には行われません。ここで intern() メソッドが関係します。

new String() で作成された String で intern() メソッドを使用すると、その String がプールに追加され、同じ String がすでに存在する場合は既存のオブジェクト インスタンスが返されます。

例:

String s1 = "Rakesh";
String s2 = "Rakesh";
String s3 = "Rakesh".intern();
String s4 = new String("Rakesh");
String s5 = new String("Rakesh").intern();

if (s1 == s2) {
    System.out.println("s1 and s2 are same");
}

if (s1 == s3) {
    System.out.println("s1 and s3 are same");
}

if (s1 == s4) {
    System.out.println("s1 and s4 are same");
}

if (s1 == s5) {
    System.out.println("s1 and s5 are same");
}

出力は次のようになります。 be:

s1 and s2 are same
s1 and s3 are same
s1 and s5 are same

文字列がインターンされずに new を使用して明示的に作成された s4 を除くすべての場合、JVM の文字列定数プールは同じ不変インスタンスを返します。

JavaTechniques を参照してください。詳細については、「文字列の等価性とインターン」を参照してください。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。