Junior — Middle
Vysvětlete princip použití StringPool a jeho roli v správě řetězců v Java
sobes.tech AI
Odpověď od AI
StringPool v Javě je speciální zásobník literálů řetězců, který ukládá unikátní instance řetězců pro úsporu paměti a zvýšení výkonu.
Když je řetězec vytvořen pomocí literálu, JVM zkontroluje, zda již takový řetězec v zásobníku existuje. Pokud ano, vrátí odkaz na existující; pokud ne, přidá nový.
To umožňuje:
- Vyhnout se duplicitám stejných řetězců v paměti.
- Rychlejší porovnávání řetězců podle odkazu (==), pokud pocházejí ze zásobníku.
Příklad:
String a = "hello";
String b = "hello";
System.out.println(a == b); // true, oba odkazují na stejný objekt v StringPool
String c = new String("hello");
System.out.println(a == c); // false, c je nový objekt mimo zásobník