Heim >Java >javaLernprogramm >Wann sollten Sie die Methode „intern()' für Java-Strings verwenden?

Wann sollten Sie die Methode „intern()' für Java-Strings verwenden?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-06 10:37:11680Durchsuche

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

Wann sollte die interne Methode für String-Literale verwendet werden?

Mit Literal-Syntax erstellte Strings („String“) werden automatisch im String-Pool interniert von JVM. Folglich verhält sich der ==-Operator für String-Literale konsistent.

Die Internierung erfolgt jedoch nicht automatisch für Strings, die mit new String() erstellt wurden. Hier wird die intern()-Methode relevant.

Wenn Sie die intern()-Methode für einen mit new String() erstellten String verwenden, wird dieser String zum Pool hinzugefügt und die vorhandene Objektinstanz zurückgegeben, wenn derselbe String bereits vorhanden ist existiert im Pool.

Zum Beispiel:

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");
}

Die Ausgabe lautet:

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

In allen Fällen außer s4, wo der String explizit mit new erstellt und nicht interniert wurde, gibt der String-Konstantenpool der JVM dieselbe unveränderliche Instanz zurück.

Ausführlichere Informationen finden Sie in JavaTechniques „String Equality and Interning“.

Das obige ist der detaillierte Inhalt vonWann sollten Sie die Methode „intern()' für Java-Strings verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn