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

Почему переменные в Stack не ссылаются на объект в Heap

В Java примитивные переменные (int, char и т.д.) хранятся в стеке напрямую, а не в куче. Для объектов в стеке хранится только ссылка (указатель) на сам объект, который размещается в куче.

Причина в управлении памятью:

  • Стек работает по принципу LIFO (Last In First Out), память выделяется и освобождается быстро
  • Куча требует более сложного управления (сборщик мусора)

Пример:

java
int a = 5; // примитив в стеке
Object obj = new Object(); // ссылка в стеке, объект в куче

Примитивы не могут ссылаться на объекты, так как они хранят значения напрямую, а не адреса памяти. Это сделано для производительности.

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

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

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

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