Sobes.tech
Junior — Middle

An welcher Stelle im Speicher des Java-Speichers befinden sich die String-Objekte?

sobes.tech KI

Antwort von AI

In Java werden String-Objekte (String) in einem speziellen Speicherbereich gespeichert, der String Pool (String-Pool) genannt wird und sich im Metaspace oder im PermGen (bei älteren JVM-Versionen) befindet.

Wenn ein String-Literal erstellt wird, überprüft die JVM den String-Pool: Wenn dieser String bereits vorhanden ist, wird eine Referenz auf das bestehende Objekt zurückgegeben; andernfalls wird ein neues Objekt erstellt und in den Pool eingefügt. Dies spart Speicher und beschleunigt den Vergleich von Strings.

Wenn ein String über den Konstruktor new String() erstellt wird, wird das Objekt im Heap erstellt und nicht in den Pool, und es wird nicht automatisch in den String Pool aufgenommen, bis die Methode intern() explizit aufgerufen wird.

Beispiel:

String s1 = "hello"; // String im Pool
String s2 = new String("hello"); // Objekt im Heap
String s3 = s2.intern(); // s3 verweist auf den String im Pool