Что такое выделенная память в куче

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

Ответ

Выделенная память в куче (heap) — это динамически распределяемая область памяти, используемая для хранения объектов во время выполнения приложения. В отличие от стека, память в куче управляется вручную (например, через new в Java/Kotlin) или автоматически (сборщиком мусора, GC).

Особенности:

  • Объекты в куче живут дольше, чем локальные переменные в стеке.
  • Доступ к памяти медленнее, чем в стеке.
  • GC автоматически освобождает неиспользуемые объекты, но может вызывать паузы.

Пример:

val user = User("Alex") // Объект User создается в куче

Нюансы:

  • Утечки памяти, если ссылки на объекты не очищаются.
  • Фрагментация кучи при частом создании/удалении объектов.
  • В Android важно минимизировать выделение в куче (например, избегать лишних объектов в onDraw()).