Junior — Middle
Como garantir o uso de um pool de strings comum ao criar um objeto string através de um construtor?
sobes.tech IA
Resposta da IA
В 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().