Какой размер у стека

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

Ответ

Размер стека в Android зависит от потока:

  • Основной поток (UI Thread) – 8 МБ (начиная с Android 8.0, ранее 4 МБ).
  • Фоновые потоки – 1 МБ (по умолчанию).

Можно изменить размер стека через конструктор Thread или HandlerThread:

Thread(null, runnable, "MyThread", 2 * 1024 * 1024) // 2 МБ

Важно:

  • Слишком большой стек может вызвать OutOfMemoryError.
  • Для глубокой рекурсии лучше использовать итеративные решения.

Проверить текущий размер можно через Runtime.getRuntime().totalMemory().