Junior — Middle
¿Cuántas cadenas de memoria se crearán en el montón al ejecutar la expresión: String a = "Hello " + "World";
sobes.tech AI
Respuesta de la IA
При выполнении выражения:
String a = "Hello " + "World";
в памяти в куче будет создан один объект String — строка "Hello World".
Объяснение:
- Конкатенация строковых литералов на этапе компиляции объединяется в один литерал.
- Поэтому выражение эквивалентно
String a = "Hello World";. - Строка "Hello World" будет помещена в пул строк (String Pool), который находится в памяти вне кучи, но объект String ссылается на этот пул.
Таким образом, дополнительных объектов String в куче не создаётся, только один объект, если он ещё не существует в пуле строк.