файл класса, сгенерированный компилятором для языка программирования Java, всегда проходит проверку
В этой форме утверждение неверно.Конечно, компиляторы - это программное обеспечение, и в программном обеспечении могут быть ошибки.Следовательно, нет гарантии, что файл класса, сгенерированный компилятором для языка программирования Java, всегда корректен.
Кроме того, правильность класса зависит от других классов, с которыми он взаимодействует.Эти классы не должны были изменяться несовместимым образом после компиляции, поэтому, если среда, которую вы использовали для компиляции, отличается от среды, в которой вы пытаетесь выполнить код, эти несоответствия могут привести к тому, что код будет отклонен верификатором, дажеесли компилятор все сделал правильно.
Это уже указывает на проблему, заключающуюся в том, что, помимо преднамеренных злонамеренных изменений, могут быть и несовместимости кода, введенные по ошибке без злых намерений.Верификатор также защищает от таких сценариев, и я полагаю, что это происходит гораздо чаще, чем настоящая преднамеренная атака.