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!