Методы хранятся в области данных объекта (как указано в определении класса), но блокируют локальные ссылки хранятся в специальной области кадра стека JVM. Когда кадр вылетает из стека кадров исполняемого потока, все локальные ссылки блока теряются, поскольку они фактически не хранятся в структурах данных объекта.
Обратите внимание, что если вы не знакомы с фреймами стека JVM, для входа в каждый метод получается новый стек стека, и при возврате из метода он выталкивается из стека потока. Кадры стека содержат несколько элементов, включая указатель на текущую инструкцию (которая находится на страницах инструкций Класса) указатель на «этот» объект и небольшой стек для хранения промежуточных элементов в текущем вычислении метода. Иногда ссылка на переменную не несет никакой необходимости в хранении, и многие оптимизирующие компиляторы затем скомпилируют код для использования локального стека вместо «хранилища эталонных объектов», что означает, что обращение вспять кода приведет к тому, что человек не обнаружит, что человек использовал переменную вообще.
«Этот» указатель всегда занимает первую позицию в области хранения опорных объектов, и все эти понятия концептуальны. Фактическая реализация должна соответствовать только операционному стандарту, она не должна соответствовать определенной макете памяти.