Sobes.tech
Назад к вопросам
Junior — Middle
71

Какие строки хранятся в пуле строк в Java?

Компании, где спрашивали
Платформа

Ответ от нейросети

sobes.tech AI

В Java пул строк (String Pool) — это специальная область памяти, где хранятся строковые литералы и строки, созданные с помощью метода intern(). В пуле хранятся строки, которые являются неизменяемыми и уникальными, то есть если две строки имеют одинаковое значение, то в пуле хранится одна копия.

В пул помещаются:

  • Все строковые литералы, например, "hello".
  • Строки, явно помещённые в пул с помощью метода intern().

Это позволяет экономить память и ускорять сравнение строк, так как сравнивать можно ссылки, а не содержимое.

Пример:

String s1 = "test"; // строковый литерал, помещается в пул
String s2 = new String("test"); // создается объект в куче
String s3 = s2.intern(); // s3 ссылается на строку из пула

System.out.println(s1 == s3); // true, обе ссылки на пул
System.out.println(s1 == s2); // false, разные объекты