Как работает верификатор JVM Classfile? - PullRequest
3 голосов
/ 23 мая 2009

Как верификатор классов JVM выполняет проверку классов?

Может кто-нибудь сказать мне шаги?

Ответы [ 2 ]

7 голосов
/ 23 мая 2009

Есть четыре прохода:

  1. Проверка основного формата (когда загружен класс) - (магическое число, проверка пула констант).

  2. Дополнительная проверка (При связывании) - Проверьте окончательные модификаторы, проверьте наличие прямых подклассов, допустимые поля, проверьте постоянный пул.

  3. Проверка байт-кода (при связывании) - Проверьте массив кодов - стек операндов в порядке, локальные переменные, правильный вызов метода, назначение полей и т. Д.

  4. Виртуальный проход (вызванный код) - убедитесь, что ссылочные классы / методы существуют и имеют правильные дескрипторы.

Полные подробности здесь, см. Раздел 4.9.1 Процесс проверки

http://java.sun.com/docs/books/jvms/second_edition/html/ClassFile.doc.html

3 голосов
/ 23 мая 2009

См. Раздел 4.9 спецификации VM . Процесс подробно прописан.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...