Назад к вопросам
Junior — Middle
64
Какое количество строк в памяти будет сформировано в куче при выполнении выражения: String a = "Hello " + "World";
Ответ от нейросети
sobes.tech AI
При выполнении выражения:
String a = "Hello " + "World";
в памяти в куче будет создан один объект String — строка "Hello World".
Объяснение:
- Конкатенация строковых литералов на этапе компиляции объединяется в один литерал.
- Поэтому выражение эквивалентно
String a = "Hello World";. - Строка "Hello World" будет помещена в пул строк (String Pool), который находится в памяти вне кучи, но объект String ссылается на этот пул.
Таким образом, дополнительных объектов String в куче не создаётся, только один объект, если он ещё не существует в пуле строк.