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