Встречается на собеседованиях • сегодня

Как устроена область памяти стэк

Стек (stack) — это область памяти, работающая по принципу LIFO (Last In, First Out). В Java стек используется для хранения примитивов, ссылок на объекты и вызовов методов.

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

  • Каждый поток имеет свой стек.
  • Размер стека фиксирован (можно задать через -Xss).
  • Быстрый доступ (просто сдвиг указателя).
  • Автоматическое управление (очистка при выходе из метода).

Пример:

java
public void foo() {
    int x = 10;          // Примитив в стеке
    String s = "Hello";  // Ссылка в стеке, объект в куче
    bar();               // Новый фрейм в стеке
}

public void bar() {
    // ...
}

Структура фрейма:

  1. Локальные переменные.
  2. Операндный стек (для вычислений).
  3. Ссылка на текущий класс (this).
  4. Возвращаемое значение.

Переполнение стека (StackOverflowError) возникает при слишком глубокой рекурсии.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы