Что такое память на стеке

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

Ответ

Память на стеке — это область памяти, выделяемая для локальных переменных и вызовов методов. Она работает по принципу LIFO (Last In, First Out).

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

  • Быстрое выделение/освобождение (просто сдвиг указателя стека).
  • Фиксированный размер (может переполниться, например, при глубокой рекурсии).
  • Автоматическое управление (память освобождается при выходе из метода).

Пример:

fun calculateSum(a: Int, b: Int): Int {
    val result = a + b  // `result` хранится на стеке
    return result
}

Что хранится на стеке:

  • Примитивы (Int, Boolean и т.д.).
  • Ссылки на объекты (сами объекты — в куче).