Страницы

Поиск по вопросам

среда, 4 марта 2020 г.

Java. Хранится ли рефлексивная информация о классе в памяти JVM?

#java #jvm #рефлексия


Вопрос в следующем, хранит ли JVM информацию о классе (например Field[], Method[],
etc.) в памяти, после загрузки класса класслоадером и можно ли держать ссылки на эту
информацию?
    


Ответы

Ответ 1



Это зависит от того, какую JVM вы используете. Например, у Hotspot JVM в свежих версиях (8+) эта информация хранится в MetaSpace, который является частью native heap. Держать ссылки на эту информацию можно, если она вам нужна. Если она не нужна, по идее лучше не держать, чтобы можно было выгрузить класс.

Ответ 2



Если я правильно понимаю вопрос, то да, jvm хранит мета-информацию о полях и методах классов в хипе. Для Java до 7 версии в PermGen, для Java 8+ в MetaSpace.

Комментариев нет:

Отправить комментарий