Что такое bytecode verification и зачем JVM это делает?

Middle
199 просмотров
AFK Offer AI

Верификация гарантирует что байткод не нарушает безопасность JVM перед выполнением. Проверяет: корректность типов (не кастим int в ссылку), нет выхода за пределы стека, корректные переходы (нет прыжков в середину инструкции), final классы не наследуются. Это делает невозможным аварийное завершение JVM из-за некорректного байткода. Без верификации любой скомпилированный класс мог бы повредить память JVM.

Следующий вопрос

Что такое canary deployment и как его поддержать в Java приложении?