Verwenden Sie die String.intern()-Funktion von Java, um den String zum String-Konstantenpool hinzuzufügen.
Bei der String-Verarbeitung von Java treten häufig Probleme beim String-Vergleich und bei der String-Verkettung auf, insbesondere bei der Verarbeitung einer großen Anzahl von Strings. Um die Leistung des Programms zu verbessern und Speicherplatz zu sparen, bietet Java eine Methode zum Hinzufügen einer Zeichenfolge zum String-Konstantenpool, nämlich die Funktion String.intern().
Der String-Konstantenpool in Java ist ein spezieller Speicherbereich, in dem häufig verwendete String-Objekte zur Wiederverwendung gespeichert werden. In Java verwenden wir normalerweise doppelte Anführungszeichen, um ein Zeichenfolgenobjekt direkt zu erstellen, zum Beispiel: „Hallo“. Auf diese Weise erstellte String-Objekte werden automatisch zum String-Konstantenpool hinzugefügt. Mit der Funktion String.intern() können Sie dem String-Konstantenpool manuell ein String-Objekt hinzufügen.
Das folgende Codebeispiel veranschaulicht, wie Sie mit der Funktion String.intern() einen String zum String-Konstantenpool hinzufügen.
public class StringInternExample { public static void main(String[] args) { String str1 = "Hello"; String str2 = new String("Hello"); String str3 = new String("Hello").intern(); String str4 = new StringBuilder("Hel").append("lo").toString(); String str5 = new StringBuilder("Ja").append("va").toString().intern(); System.out.println("str1 == str2: " + (str1 == str2)); // false System.out.println("str1 == str3: " + (str1 == str3)); // true System.out.println("str1 == str4: " + (str1 == str4)); // false System.out.println("str1 == str5: " + (str1 == str5)); // true } }
Im obigen Beispiel haben wir 5 String-Objekte erstellt. Der von str1 mit doppelten Anführungszeichen erstellte String wird automatisch zum String-Konstantenpool hinzugefügt, während der von str2 mit dem neuen Schlüsselwort erstellte String auf dem Heap liegt neues Objekt in . Wir verwenden die Funktion String.intern(), um str3 manuell zum String-Konstantenpool hinzuzufügen, sodass es auf dasselbe Objekt wie str1 verweist. str4 ist eine von StringBuilder gespleißte Zeichenfolge. Im Heap wird ein neues Objekt erstellt, das sich von dem von str1 referenzierten Objekt unterscheidet. Verwenden Sie abschließend die Funktion String.intern(), um str5 zum String-Konstantenpool hinzuzufügen und dabei auf dasselbe Objekt wie str1 zu verweisen.
Wenn wir das Programm ausführen, können wir die folgende Ausgabe finden:
str1 == str2: false str1 == str3: true str1 == str4: false str1 == str5: true
Wie aus der Ausgabe ersichtlich ist, wird die Zeichenfolge nach Verwendung der Funktion String.intern() zum String-Konstantenpool hinzugefügt, indem der Referenzwert verglichen wird Mit einer Zeichenfolge können Sie feststellen, ob zwei Zeichenfolgen gleich sind. Da die Zeichenfolgenobjekte im Zeichenfolgenkonstantenpool eindeutig sind, kann durch die Referenzbeurteilung ein Einzelvergleich der Zeicheninhalte vermieden werden, wodurch die Programmleistung verbessert wird.
Es ist zu beachten, dass nach der Verwendung der Funktion String.intern() zum Hinzufügen einer Zeichenfolge zum String-Konstantenpool zunächst gesucht wird, ob sich im Konstantenpool eine Zeichenfolge mit demselben Inhalt befindet, und wenn ja, diese zurückgegeben wird Objekt im Konstantenpool erstellen. Wenn nicht, erstellen Sie ein neues Objekt im Konstantenpool. Daher müssen Sie bei der Verwendung der Funktion String.intern() auf die Speichernutzung achten und vermeiden, häufig eine große Anzahl von String-Objekten zum String-Konstantenpool hinzuzufügen.
Kurz gesagt: Mit der Funktion String.intern() von Java können Sie Zeichenfolgen zum String-Konstantenpool hinzufügen, um String-Objekte wiederzuverwenden und so die Programmleistung zu verbessern und Speicherplatz zu sparen. In der tatsächlichen Entwicklung kann die Funktion String.intern () flexibel je nach Szenario verwendet werden, um den Effekt einer Programmoptimierung zu erzielen.
Das obige ist der detaillierte Inhalt vonFügen Sie mit der Java-Funktion String.intern() einen String zum String-Konstantenpool hinzu. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!