Sobes.tech
Junior — Middle

Kunt u het concept van string pool en de rol ervan in geheugenbeheer in Java uitleggen?

sobes.tech AI

Antwoord van AI

De String Pool in Java is een speciale plek in het geheugen waar unieke instanties van string literals worden opgeslagen. Dit bespaart geheugen en versnelt stringvergelijkingen.

Wanneer je een string maakt via een literal, bijvoorbeeld:

String s = "hallo";

Plaatst Java deze string in de string pool. Als later een andere string met dezelfde waarde wordt gemaakt, verwijst deze naar het bestaande object in de pool in plaats van een nieuw te maken.

Dit is belangrijk voor geheugenbeheer, omdat strings vaak gebruikte objecten zijn, en hergebruik van hun instanties de belasting op de garbage collector vermindert en het geheugenverbruik verlaagt.

Als een string wordt gemaakt via de constructor new String("hallo"), wordt deze in de heap gemaakt en niet in de pool, en wordt niet automatisch hergebruikt.

Om een string aan de pool toe te voegen, kun je de methode intern() aanroepen:

String s1 = new String("hallo");
String s2 = s1.intern(); // s2 verwijst naar de string in de pool