Ответ
В куче (heap) хранятся все объекты и массивы, созданные во время выполнения программы с помощью оператора new.
Пример размещения в куче:
MyClass obj = new MyClass(); // Экземпляр объекта MyClass — в куче.
int[] numbers = new int[100]; // Массив из 100 целых чисел — в куче.
String text = "Hello"; // Объект строки из пула строк — в куче.
Ключевые принципы:
- Примитивные типы (
int,char,booleanи т.д.), объявленные как локальные переменные, хранятся в стеке. - Ссылки на объекты (переменные
obj,numbers,text) также хранятся в стеке, но сами объекты, на которые они указывают, — всегда в куче. - Куча является общей областью памяти для всех потоков приложения и управляется сборщиком мусора (Garbage Collector, GC), который автоматически освобождает память от неиспользуемых объектов.