Какие данные хранятся в Heap

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

Ответ

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

  • Объекты классов (экземпляры)
  • Массивы
  • Коллекции (ArrayList, HashMap и т.д.)
  • Строки (String)
  • Ссылочные типы данных

Пример:

// Хранится в куче
String text = new String("Hello"); 
List<Integer> numbers = new ArrayList<>();
int[] array = new int[10];

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