Junior — Middle
Combien de chaînes en mémoire seront créées dans le tas lors de l'exécution de l'expression : String a = "Hello " + "World";
sobes.tech IA
Réponse de l'IA
При выполнении выражения:
String a = "Hello " + "World";
в памяти в куче будет создан один объект String — строка "Hello World".
Объяснение:
- Конкатенация строковых литералов на этапе компиляции объединяется в один литерал.
- Поэтому выражение эквивалентно
String a = "Hello World";. - Строка "Hello World" будет помещена в пул строк (String Pool), который находится в памяти вне кучи, но объект String ссылается на этот пул.
Таким образом, дополнительных объектов String в куче не создаётся, только один объект, если он ещё не существует в пуле строк.