Java's String Pool Explorations
Betrachten Sie den folgenden Code:
String first = "abc"; String second = new String("abc");
Frage 1: String Pool Verwendung mit neuem Schlüsselwort
Wenn Java als zweites mit dem initialisiert wird new String()-Konstruktor, erstellt er eine völlig neue abc-String-Instanz?
Antwort: Ja, die Verwendung von new stellt die Erstellung eines neuen String-Objekts sicher.
Frage 2: Heap- und String-Pool-Speicher
Wird die neu erstellte String-Instanz (aus dem neuen Schlüsselwort) im regulären Speicher gespeichert? Heap oder der String-Pool?
Antwort: Alle Objekte, einschließlich String-Objekte, befinden sich auf dem Heap. Der String-Pool ist kein separater Speicherbereich; Es handelt sich um einen Cache-ähnlichen Mechanismus.
Frage 3: Anzahl der String-Pools
Wie viele Instanzen des Strings „abc“ landen im String-Pool?
Antwort: Wenn Sie unveränderliche String-Literale erstellen, platziert Java diese im Allgemeinen automatisch im String Pool. In diesem speziellen Szenario gilt jedoch Folgendes:
Daher in diesem Fall nur eins „abc“ String-Instanz wird im String-Pool vorhanden sein.
Das obige ist der detaillierte Inhalt vonWie geht der String-Pool von Java mit Strings um, die mit dem Schlüsselwort „new' erstellt wurden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!