Процесс разрешения должен выполняться JVM, чтобы понять код, который вы загружаете. Если он не разрешает ссылки, JVM не может выполнить методы. (И разрешение также проверяет, что подписи и все еще соответствуют ... для защиты JVM от кучи коррупции и т. Д., Которые будут возникать из-за проблем с двоичной несовместимостью.)
Напротив, процесс проверки - это проверка того, что сами байткоды Не делай ничего плохого. Это не произойдет, если они были созданы с помощью правильного компилятора, но если байт-коды были созданы с помощью компилятора с ошибкой, методом багги-инъекций ... или каким-то плохим парнем, использующим байт-коды, то верификатор предоставляет линию защиты.
Главное отличие состоит в том, что разрешение имеет важное значение, но проверка (вроде) необязательна. Действительно, разделение разрешения и проверки означает, что проверка может быть отключена. Для этого есть опция командной строки. (Хорошо ли отключать проверку ... при нормальных обстоятельствах ... довольно сомнительно, ИМО.)