English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Java String (Zeichenkette) Methoden
Der Java String intern() Methoden gibt die normative Darstellung des String-Objekts zurück.
Die Syntax des String-intern() Methods ist:
string.intern()
Hierbei ist string ein Objekt der Klasse String.
Ohne jegliche Parameter
Gibt die normative Darstellung der Zeichenkette zurück
String-Embedding stellt sicher, dass alle Strings mit demselben Inhalt denselben Speicherbereich teilen.
Angenommen, wir haben zwei Strings:
String str1 = "xyz"; String str2 = "xyz";
Da beide str1und str2Mit demselben Inhalt, daher werden diese beiden Strings den gleichen Speicherbereich teilen. Java fügt automatisch String-Literal ein.
Allerdings werden diese Strings nicht die gleiche Speicherbereiche teilen, wenn sie mit dem Schlüsselwort new erstellt werden. Zum Beispiel,
class Main { public static void main(String[] args) { String str1 = new String("xyz"); String str2 = new String("xyz"); System.out.println(str1 == str2); // false } }
Von diesem Beispiel ist erkennbar, dass beide str1und str2haben denselben Inhalt. Aber sie sind nicht gleich, weil sie denselben Speicher nicht teilen.
In diesem Fall können Sie den intern() Methodenaufruf manuell verwenden, um denselben Speicher für Zeichenketten mit gleicher Inhalt zu verwenden.
class Main { public static void main(String[] args) { String str1 = new String("xyz"); String str2 = new String("xyz"); //str1und str2teilen nicht denselben Speicherpool System.out.println(str1 == str2); // false //verwendet den intern() Methodenaufruf //Jetzt, str1und str2teilen denselben Speicherpool str1 = str1.intern(); str2 = str2.intern(); System.out.println(str1 == str2); // true } }
Wie Sie sehen können, str1und str2dieselben Inhalte haben, aber sie waren nicht ursprünglich gleich.
verwenden wir den intern() Methodenaufruf, um str1und str2verwendet denselben Speicherpool. Nach dem Aufruf von intern(), str1und str2gleich.