String ist eine Klasse in Java, die Zeichenfolgen speichert und zum Paket java.lang gehört. Sobald String-Objekte erstellt wurden, können sie nicht mehr geändert werden (unveränderlich).
Alle String-Objekte werden an einem separaten Speicherort im Heap-Bereich gespeichert, der als String-Konstantenpool bezeichnet wird.
Immer wenn ein String-Wert definiert wird, erstellt JVM ein String-Objekt mit dem angegebenen Wert im String-Konstantenpool. Wenn Sie also das obige Programm ausführen, werden im String-Konstantenpool zwei String-Werte erstellt.
Diese Methode gibt den Wert der aktuellen Zeichenfolge aus dem Pool eindeutiger Zeichenfolgenwerte zurück. Immer wenn Sie diese Methode für einen bestimmten String aufrufen, wird sie zurückgegeben, wenn der String-Konstantenpool bereits einen String enthält, der diesem entspricht (gemäß der Methode equal der Object-Klasse). Wenn nicht, wird die aktuelle Zeichenfolge zum String-Konstantenpool hinzugefügt und ein Verweis darauf zurückgegeben.
d.h. wenn Sie diese Methode für zwei Strings mit demselben Inhalt aufrufen, teilen sie sich garantiert den gleichen Speicher.
Diese Methode kann den belegten Speicher bequem reduzieren, wenn mehrere doppelte Werte angezeigt werden.
Im Folgenden erstellen wir zwei Zeichenfolgen mit demselben Inhalt (unter Verwendung des neuen Schlüsselworts) und vergleichen sie mithilfe des Operators „==". Obwohl beide Objekte denselben Wert haben, ist das Ergebnis falsch, da sie nicht auf dasselbe Objekt (Speicher) verweisen.
public class InternExample { public static void main(String args[]) { String str1 = new String("Hello"); str1 = str1.intern(); String str2 = "Hello"; str2 = str2.intern(); System.out.println(str1.equals(str2)); } }
false
Das Ergebnis ist jedoch wahr, wenn Sie die interne Methode aufrufen, bevor Sie die beiden Objekte vergleichen, da dadurch sichergestellt wird, dass beide Objekte denselben Speicher teilen, wenn sie denselben Inhalt haben.
public class InternExample { public static void main(String args[]) { String str1 = new String("Hello"); str1 = str1.intern(); String str2 = new String("Hello"); str2 = str2.intern(); System.out.println(str1==str2); } }
true
Das obige ist der detaillierte Inhalt vonWas ist der Zweck der String intern()-Methode in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!