Какие объекты попадают в кучу

«Какие объекты попадают в кучу» — вопрос из категории Управление памятью, который задают на 24% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В куче (heap) хранятся все объекты, созданные с помощью new, а также массивы. Сюда попадают:

  1. Объекты классов (экземпляры)
  2. Массивы (включая массивы примитивов)
  3. Данные, связанные с объектами (поля, ссылки)

Примитивы (int, boolean и т.д.) хранятся в стеке, если они локальные переменные, или в куче как часть объекта.

Пример:

// В куче
Object obj = new Object(); 
int[] numbers = new int[10];

// В стеке (если локальная переменная)
int count = 5; 

Сборщик мусора автоматически освобождает память кучи, когда объекты больше не используются.