Sobes.tech
Junior — Middle

Můžete vysvětlit koncept poolu řetězců a jeho roli v řízení paměti v Javě?

sobes.tech AI

Odpověď od AI

String Pool v Javě je speciální místo v paměti, kde jsou uloženy unikátní instance literálů řetězců. To umožňuje šetřit paměť a urychlit porovnávání řetězců.

Když vytvoříte řetězec pomocí literálu, například:

String s = "ahoj";

Java tento řetězec umístí do poolu řetězců. Pokud později vznikne jiný řetězec se stejnou hodnotou, bude odkazovat na již existující objekt v poolu, místo aby vytvořil nový.

To je důležité pro správu paměti, protože řetězce jsou často používané objekty a jejich opakované použití snižuje zátěž garbage collectoru a snižuje spotřebu paměti.

Pokud je řetězec vytvořen pomocí konstruktoru new String("ahoj"), je vytvořen na haldě (heap) a nebude automaticky znovu použit.

Pro přidání řetězce do poolu můžete zavolat metodu intern():

String s1 = new String("ahoj");
String s2 = s1.intern(); // s2 bude odkazovat na řetězec v poolu