Sobes.tech
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 е нов обект извън пула

Така пулът от низове помага ефективно да се управлява паметта при работа с низове.