Встречается на собеседованиях • сегодня

С чем связано выделение памяти для новой строки

Выделение памяти для новой строки в Java связано с созданием объекта String в heap. Строки в Java неизменяемы (immutable), поэтому при каждой операции, изменяющей строку (например, конкатенация), создаётся новый объект в памяти.

Пример:

java
String s1 = "Hello"; // Создаётся в пуле строк (String Pool)
String s2 = new String("Hello"); // Явное выделение в heap
String s3 = s1 + " World"; // Новый объект в heap

Нюансы:

  • Литералы ("...") хранятся в String Pool для оптимизации.
  • new String() всегда создаёт новый объект в heap.
  • Конкатенация (+, concat()) приводит к созданию новых объектов, если результат не закеширован.
  • Для эффективной работы с изменяемыми строками используют StringBuilder/StringBuffer.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы