Junior — Middle
Какво е пул от стринг литерали и защо е необходим в управлението на паметта?
sobes.tech AI
Отговор от AI
Пулът от низове (String Pool) е специална област в паметта в Java, където се съхраняват уникални обекти от низове. Когато се създаде низов литерал, JVM проверява дали вече съществува такъв в пула. Ако да, връща препратка към него; ако не, добавя нов.
За какво е това?
- Спестяване на памет: еднаквите низове се съхраняват само веднъж.
- Подобряване на производителността: сравняването на низове чрез препратка (==) е възможно за литералите от пула.
Пример:
String s1 = "hello";
String s2 = "hello";
System.out.println(s1 == s2); // true, и двете препратки сочат към един и същи обект в пула
String s3 = new String("hello");
System.out.println(s1 == s3); // false, s3 е нов обект извън пула
Така пулът от низове помага ефективно да се управлява паметта при работа с низове.