Sobes.tech
Назад к вопросам
Junior — Middle
65

Какое количество строк в памяти будет сформировано в куче при выполнении выражения: String a = "Hello " + "World";

Ответ от нейросети

sobes.tech AI

При выполнении выражения:

String a = "Hello " + "World";

в памяти в куче будет создан один объект String — строка "Hello World".

Объяснение:

  • Конкатенация строковых литералов на этапе компиляции объединяется в один литерал.
  • Поэтому выражение эквивалентно String a = "Hello World";.
  • Строка "Hello World" будет помещена в пул строк (String Pool), который находится в памяти вне кучи, но объект String ссылается на этот пул.

Таким образом, дополнительных объектов String в куче не создаётся, только один объект, если он ещё не существует в пуле строк.