Назад к вопросам
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, разные объекты