Heim >Java >javaLernprogramm >Wann sollten Sie die Methode „intern()' für Java-Strings verwenden?
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!