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

В чем разница между Stack и Heap в JVM

Стек (Stack) и куча (Heap) — это области памяти в JVM, но они используются по-разному:

  1. Stack:
    • Хранит примитивы и ссылки на объекты (локальные переменные, параметры методов).
    • Работает по принципу LIFO (Last In, First Out).
    • Память выделяется/освобождается автоматически при вызове/завершении метода.
    • Быстрый доступ, но ограниченный размер (может привести к StackOverflowError).
  1. Heap:
    • Хранит объекты и массивы (включая их поля).
    • Память выделяется динамически, освобождается сборщиком мусора (GC).
    • Размер ограничен настройками JVM (Xmx, Xms).
    • Медленнее стека, но объем памяти значительно больше.

Пример:

java
void method() {
    int x = 5;          // x в стеке
    Object obj = new Object();  // obj (ссылка) в стеке, сам объект в куче
}
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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