Junior — Middle
Обяснете принципа на използване на StringPool и ролята му в управлението на низове в Java
sobes.tech AI
Отговор от AI
StringPool в Java е специален пул от стрингови литерали, който съхранява уникални екземпляри на стрингове за спестяване на памет и подобряване на производителността.
Когато се създаде стринг чрез литерал, JVM проверява дали такъв стринг вече съществува в пула. Ако да, връща препратка към съществуващия; ако не, добавя нов.
Това позволява:
- Да се избегне дублиране на еднакви стрингове в паметта.
- По-бързо сравняване на стрингове по препратка (==), ако те идват от пула.
Пример:
String a = "hello";
String b = "hello";
System.out.println(a == b); // true, и двата сочат към един и същи обект в StringPool
String c = new String("hello");
System.out.println(a == c); // false, c е нов обект извън пула