Какие плюсы и минусы Heap

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

Ответ

Плюсы:

  • Динамическое выделение памяти — можно выделять и освобождать память в runtime.
  • Гибкость — размер памяти не ограничен статически, как в стеке.
  • Доступен всем потокам приложения (глобальная область памяти).

Минусы:

  • Медленнее стека — выделение/освобождение памяти требует больше ресурсов.
  • Риск утечек памяти — если не освобождать выделенную память (например, забыть free() в C или не обнулять ссылки в Java/Kotlin).
  • Фрагментация — частые аллокации/деаллокации могут привести к фрагментации кучи.
// Пример утечки в Android (неправильно)
class LeakyActivity : Activity() {
    private val leak = SomeSingleton.getInstance(this) // Context удерживается
}