2016-05-12 6 views
1

Где идентификаторы или имя переменной сохраняются в java? Я понимаю, что объекты хранятся в куче, а переменная получает хранилище в куче или стеке в зависимости от типа и объема переменной. Можем ли мы отлаживать или писать какую-либо программу для ее подтверждения?Java - Где хранится имя переменной или идентификатор, стек или куча?

Благодарности & С уважением

ответ

2

Имена полей сохраняются как часть метаданных класса, в ранее-PermGen теперь-Метапространстве.

Элементы массива не имеют имен, только номера. (Cue Patrick McGoohan.)

Имена метода и конструктора параметров и локальных переменных и параметров обработчика сохраняются только в отладочной-символы в файл классов, если выбрана эта опция. Они не нужны JVM, потому что компилятор сопоставил их с номерами слотов стека, используемыми в байте-коде.

0

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

+1

Я думаю, что ОП спрашивает о «именах полей» здесь не полевых данных – TheLostMind

1

Имена переменных хранятся в «области метода» (которая является частью константы) вместе с другими метаданными класса.

Существует специальная область для хранения метаданных класса, называемых областью метода. Это часть PermGen (который был в куче, прежде чем Java 8) теперь он был перемещен в Метапространстве

+0

Вы говорите, что метаданные класса и имена переменных сохраняются в куче? – Jeet

+0

Обновлен мой ответ. @JeetendraChoudhary – TheLostMind

+0

Спасибо, и где этот метапас просто любопытно. И имеет ли это значение, я имею в виду, это как-то полезно для разработчиков или просто хорошо знать вещь. – Jeet

Смежные вопросы