Sobes.tech
Назад к вопросам
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();

Таким образом, автоматическое объединение в пул происходит только для константных выражений на этапе компиляции.