Назад к вопросам
Junior — Middle
75
Автоматически ли строки объединяются в String Pool при конкатенации?
Ответ от нейросети
sobes.tech AI
Строки в Java не всегда автоматически объединяются в String Pool при конкатенации.
- Если конкатенация происходит на этапе компиляции (например, константы), результат помещается в String Pool:
String s = "Hello" + "World"; // объединяется в "HelloWorld" в пуле строк
- Если конкатенация происходит во время выполнения (например, с переменными), новая строка создаётся в куче и не попадает в пул автоматически:
String a = "Hello";
String b = "World";
String s = a + b; // создаётся новая строка в куче
Чтобы добавить такую строку в пул, можно вызвать метод intern():
String sInterned = s.intern();
Таким образом, автоматическое объединение в пул происходит только для константных выражений на этапе компиляции.