Junior — Middle
Co je zásobník literálů řetězců a k čemu slouží při správě paměti?
sobes.tech AI
Odpověď od AI
Pool řetězců (String Pool) je speciální oblast paměti v Javě, kde jsou uloženy unikátní řetězcové objekty. Když je vytvolen literál řetězce, JVM zkontroluje, zda již takový řetězec v poolu existuje. Pokud ano, vrátí odkaz na něj; pokud ne, přidá nový.
Na co je to dobré?
- Úspora paměti: stejné řetězce jsou uloženy jen jednou.
- Zvýšení výkonu: porovnání řetězců přes odkaz (==) je možné pro literály z poolu.
Příklad:
String s1 = "hello";
String s2 = "hello";
System.out.println(s1 == s2); // true, obě reference ukazují na stejný objekt v poolu
String s3 = new String("hello");
System.out.println(s1 == s3); // false, s3 je nový objekt mimo pool
Tímto způsobem pool řetězců pomáhá efektivně spravovat paměť při práci s řetězci.