Как верификатор классов JVM выполняет проверку классов?
Может кто-нибудь сказать мне шаги?
Есть четыре прохода:
Проверка основного формата (когда загружен класс) - (магическое число, проверка пула констант).
Дополнительная проверка (При связывании) - Проверьте окончательные модификаторы, проверьте наличие прямых подклассов, допустимые поля, проверьте постоянный пул.
Проверка байт-кода (при связывании) - Проверьте массив кодов - стек операндов в порядке, локальные переменные, правильный вызов метода, назначение полей и т. Д.
Виртуальный проход (вызванный код) - убедитесь, что ссылочные классы / методы существуют и имеют правильные дескрипторы.
Полные подробности здесь, см. Раздел 4.9.1 Процесс проверки
http://java.sun.com/docs/books/jvms/second_edition/html/ClassFile.doc.html
См. Раздел 4.9 спецификации VM . Процесс подробно прописан.