Ответ
Куча (Heap) — это область динамической памяти в JVM, предназначенная для хранения всех объектов и массивов, создаваемых во время выполнения программы. Управление памятью в куче осуществляется автоматически сборщиком мусора (Garbage Collector, GC).
Ключевые характеристики:
- Общая для всех потоков приложения.
- Разделена на поколения (generations) для оптимизации работы GC:
- Young Generation (Eden + Survivor spaces) — для новых объектов.
- Old (Tenured) Generation — для долгоживущих объектов.
- Metaspace (ранее Permanent Generation) — для метаданных классов.
- Размер кучи задается JVM-параметрами:
-Xms— начальный размер.-Xmx— максимальный размер.
Пример создания объекта в куче:
// Объект 'obj' создается и размещается в куче
Object obj = new Object();
Когда ссылка obj перестает быть достижимой, GC может освободить занимаемую объектом память.