Sobes.tech
Junior — Middle

Op welke plek in het geheugen van de Java-opslag bevinden zich de string-objecten?

sobes.tech AI

Antwoord van AI

In Java worden stringobjecten (String) opgeslagen in een speciale geheugenruimte genaamd String Pool (stringpool), die zich bevindt in de Metaspace of in PermGen (bij oudere JVM-versies).

Wanneer een stringliteral wordt gemaakt, controleert de JVM de stringpool: als zo'n string al bestaat, wordt een verwijzing naar het bestaande object geretourneerd; anders wordt een nieuw object gemaakt en in de pool geplaatst. Dit helpt geheugen te besparen en het vergelijken van strings te versnellen.

Als een string wordt gemaakt via de constructor new String(), wordt het object in de heap gemaakt en niet automatisch in de String Pool geplaatst, tenzij de methode intern() expliciet wordt aangeroepen.

Voorbeeld:

String s1 = "hello"; // string in de pool
String s2 = new String("hello"); // object in de heap
String s3 = s2.intern(); // s3 verwijst naar de string in de pool