[имя] спросил: Почему item не находится в heap?

Размещение item зависит от его типа и контекста. Параметр long — примитивное значение в локальных данных вызова, а не отдельный объект в heap; поле объекта и ссылка требуют другого объяснения.

Короткий ответ

Что ответить на собеседовании

Размещение item зависит от его типа и контекста. Параметр long — примитивное значение в локальных данных вызова, а не отдельный объект в heap; поле объекта и ссылка требуют другого объяснения.

Подробный разбор

Ответ с пояснениями

Размещение item зависит от его типа и контекста. Параметр long — примитивное значение в локальных данных вызова, а не отдельный объект в heap; поле объекта и ссылка требуют другого объяснения.

Если речь о параметре метода long item, Java передаёт копию числа, а не ссылку на объект Long. В модели JVM локальные переменные принадлежат frame вызова; JIT может держать значение в регистре или устранить его. Но примитивное поле обычно хранится внутри содержащего его объекта. Поэтому правило «все примитивы только на стеке» неверно, а без кода нельзя определить конкретное размещение.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее