Junior — Middle
91
Как обеспечить использование общего пула строк при создании строкового объекта через конструктор?
Компании, где спрашивали
Спецвузавтоматика
Ответ от нейросети
sobes.tech AI
В Java строки являются неизменяемыми и хранятся в пуле строк (String Pool) для оптимизации памяти. При создании строкового объекта через конструктор, например new String("text"), создаётся новый объект, который не обязательно будет использовать пул.
Чтобы обеспечить использование общего пула строк, нужно вызвать метод intern() у строкового объекта. Этот метод:
- Проверяет, есть ли в пуле строк уже такая строка.
- Если есть — возвращает ссылку на неё.
- Если нет — добавляет текущую строку в пул и возвращает её.
Пример:
String s1 = new String("example");
String s2 = s1.intern(); // s2 ссылается на строку из пула
String s3 = "example";
System.out.println(s2 == s3); // true
Таким образом, чтобы использовать общий пул строк при создании через конструктор, нужно явно вызвать intern().