Условно объект отправляется в «кучу». Тогда, поскольку это локальная ссылка на метод, фактическая ссылка будет в стеке. Под стеком «мы» подразумевается стек собственных потоков (т. Е. Тот же стек, на котором будет размещаться локальная переменная в C), по крайней мере, в случае виртуальной машины Sun. просто нужно иметь какое-то абстрактное понятие «стековые фреймы», которые оно выделяет при каждом вызове метода, будь то из собственного стека или нет).
Но ... на современных виртуальных машинах (за исключением возможного исключения из более простых встроенных / mpbile виртуальных машин) действительно не существует такой вещи, как "куча". На практике существуют различные области кучи.
Самый простой из них, как правило, почти как «мини-стек», предназначенный для быстрого выделения объектов, которые не будут долго задерживаться и, вероятно, могут быть отменены почти сразу.
Как упоминалось другим автором, высокооптимизированная JVM может в принципе размещать данные объекта в стеке, и для этого есть определенные предложения. Хотя, как уже упоминалось в одной из ссылок, критика этого заключается в том, что быстрая куча «eden» в любом случае почти похожа на стек (но не на «стек»).