Heim >Java >javaLernprogramm >Wann sollten Sie „String#intern()' in Java verwenden?

Wann sollten Sie „String#intern()' in Java verwenden?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-26 06:06:14950Durchsuche

When Should You Use `String#intern()` in Java?

Wann ist String#intern() für String-Literale zu verwenden?

String#intern() gibt den vorhandenen String aus dem String-Pool zurück, falls vorhanden vorhanden oder fügt es hinzu und gibt die hinzugefügte Referenz zurück. Während String-Literale automatisch interniert werden, kann es dennoch erforderlich sein, intern() in bestimmten Szenarien manuell aufzurufen.

Automatische Internierung von String-Literalen

Im bereitgestellten Beispielcode :

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

Sowohl s1 als auch s3 repräsentieren denselben String, da die Internierung implizit auf String-Literale angewendet wird Java. Aus diesem Grund werden beide Zeilen, s1 == s2 und s1 == s3, als wahr ausgewertet.

Anwendungsfall für intern()

Die Verwendung von intern() ist relevant beim Umgang mit Strings, die keine String-Literale sind. Zum Beispiel:

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

In diesem Beispiel stellen s1, s2 und s4 aufgrund der automatischen Internierung oder des expliziten Aufrufs von intern() denselben String im Konstantenpool dar. Allerdings verweist s3 auf eine neue String-Instanz, die sich nicht im Konstantenpool befindet.

Durch den expliziten Aufruf von intern() auf s4 wird effektiv überprüft, ob „Rakesh“ bereits im String-Pool vorhanden ist. Wenn nicht, wird es hinzugefügt und die Referenz des hinzugefügten Strings zurückgegeben. Dies optimiert die String-Nutzung, indem doppelte String-Objekte im Speicher reduziert und String-Gleichheitsvergleiche gefördert werden.

Das obige ist der detaillierte Inhalt vonWann sollten Sie „String#intern()' in Java 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