Конкретно на примере:
1. Впервые с момента запуска программы обратились к static-члену (тип int) класса.
2. Произошла инициализация этого класса (выполнение static-блока и т. д.).
3. Обращаемся в static-методу этого-же класса. Вот именно в этот момент, откуда Java получает тело метода (команды): из .class файла на жёстком диске или из оперативной памяти?
То есть, при инициализации класса без создания объектов, из .class файла в другую область (скажем, оперативную память) попадает вообще вся информация из класса или только часть информации? Если только часть, то попадают ли: тела методов? то, что после = у instance-полей?
dell
16 уровень
Что включено в процесс инициализации класса?
Решен
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Wladyslaw Java Developer Master
22 декабря 2019, 20:19решение
тела методов раньше были в PermGen, если не ошибаюсь, то-есть да, загружались в память сразу, они ж всеравно не меняются. Сейчас PermGen заменили на Metaspace. Вот как сейчас работает - ну, нужно читать.
Но это все относительно хотспота. В других реализациях может быть иначе, такие детали в спецификации не описаны, по-моему.
Вот самая свежая инфа по подобным вещам
Тут, опять же, без конкретики. Но все что тут описанно - все должно быть реализованно, если ты хочешь называтся JVM
+2
JustinianJudge в Mega City OneMaster
22 декабря 2019, 19:58
вот тебе запрос для гугля, там и ответ на твой вопрос и дополнительная информация. Читай про JVM, class loader и тд.
0