和classloader一起class文件检验器保证装载的class文件内容有正确的内部结构,并且这些class文件相互间协调一致。如果class文件检验器在class文件中发现了问题,它将抛出异常。
class文件检验器的必要性:
由于class文件实质上是一个字节序列,所以虚拟机无法分辨class是正常的java编译器生成的,还是黑客产生的。class文件检验器可以确保class文件的安全使用。
class文件检验器对class进行独立的4趟扫描来完成操作。分别如下:
1.class文件的结构检验
在类被装载的时候进行,主要检查class文件的内部结构,证明被安全的编译。比如是否以4个同样的字节开头,尾部是否有被加上附加的东西等等。
(2,3趟主要在连接过程中进行,确认类型数据遵循java语言规范,以及确保字节码的完整性)
2.类型数据的语义检查
查看每个组成部分结构是否正确,比如字符是否符合上下文,final方法是否被子类覆盖等等。
3.字节码验证
确保任何路径的在字节码流中都得到正确的操作码,但不会试图检测所有的安全问题。比如有些不确定问题。
4.符号引用验证
虚拟机将追踪那些引用,从被验证的class文件到被引用的class文件。
大多数java虚拟机采用了延迟装载的方式,只有在被装载的类找不到该引用才会抛出NoClassDefFoundError,否则及时发现不能找到引用类也不抛出异常。
分享到:
相关推荐
闲暇时写的小东西,路过的可以看看.查看class文件编译时使用的jdk版本.没技术含量,纯粹为了查看方便,使用UltraEdit一样可以看16进制来换算.
项目包含:菠萝检测【包含划分好的数据集、类别class文件、数据可视化脚本】,数据保存按照YOLOV5文件夹保存,可直接用作目标检测数据集,无需额外处理。 图像分辨率为640*640的大分辨率RGB图片,数据集为生活中的...
项目包含:甲状腺癌症细胞检测(9类别)【包含划分好的数据集、类别class文件、数据可视化脚本】,数据保存按照YOLOV5文件夹保存,可直接用作目标检测数据集,无需额外处理。 图像分辨率为640*640的大分辨率RGB图片...
项目包含:农作物害虫检测(4类别)【包含划分好的数据集、类别class文件、数据可视化脚本】,数据保存按照YOLOV5文件夹保存,可直接用作目标检测数据集,无需额外处理。 图像分辨率为640*640的大分辨率RGB图片,...
项目包含:高粱成熟度检测【包含划分好的数据集、类别class文件、数据可视化脚本】,数据保存按照YOLOV5文件夹保存,可直接用作目标检测数据集,无需额外处理。 图像分辨率为640*640的大分辨率RGB图片,数据集为...
项目包含:土地中的冬虫夏草检测(1类别)【包含划分好的数据集、类别class文件、数据可视化脚本】,数据保存按照YOLOV5文件夹保存,可直接用作目标检测数据集,无需额外处理。 图像分辨率为640*482的大分辨率RGB...
项目包含:路上障碍物检测(4类别)【包含划分好的数据集、类别class文件、数据可视化脚本】,数据保存按照YOLOV5文件夹保存,可直接用作目标检测数据集,无需额外处理。 图像分辨率为640*640的大分辨率RGB图片,...
项目包含:6种食物检测【包含划分好的数据集、类别class文件、数据可视化脚本】,数据保存按照YOLOV5文件夹保存,可直接用作目标检测数据集,无需额外处理。 图像分辨率为640*640的大分辨率RGB图片,数据集常见食物...
项目包含:跌倒检测【包含划分好的数据集、类别class文件、数据可视化脚本】,数据保存按照YOLOV5文件夹保存,可直接用作目标检测数据集,无需额外处理。 图像分辨率为640*640的大分辨率RGB图片,数据集为生活中...
项目包含:菠萝缺陷检测【包含划分好的数据集、类别class文件、数据可视化脚本】,数据保存按照YOLOV5文件夹保存,可直接用作目标检测数据集,无需额外处理。 图像分辨率为640*640的大分辨率RGB图片,数据集为菠萝...
项目包含:菠萝是否成熟检测【包含划分好的数据集、类别class文件、数据可视化脚本】,数据保存按照YOLOV5文件夹保存,可直接用作目标检测数据集,无需额外处理。 图像分辨率为640*640的大分辨率RGB图片,数据集为...
项目包含:1种织物表面油渍检测【包含划分好的数据集、类别class文件、数据可视化脚本】,数据保存按照YOLOV5文件夹保存,可直接用作目标检测数据集,无需额外处理。 图像分辨率为2000*1500的大分辨率RGB图片,数据...
项目包含:集装箱缺陷检测【包含划分好的数据集、类别class文件、数据可视化脚本】,数据保存按照YOLOV5文件夹保存,可直接用作目标检测数据集,无需额外处理。 图像分辨率为640*640的大分辨率RGB图片,数据集为集...
项目包含:墙面裂缝缺陷检测【包含划分好的数据集、类别class文件、数据可视化脚本】,数据保存按照YOLOV5文件夹保存,可直接用作目标检测数据集,无需额外处理。 图像分辨率为416*416的大分辨率RGB图片,数据集为...
项目包含:脊椎检测(1类别)【包含划分好的数据集、类别class文件、数据可视化脚本】,数据保存按照YOLOV5文件夹保存,可直接用作目标检测数据集,无需额外处理。 图像分辨率为640*640的大分辨率RGB图片,数据集为...
项目包含:9种岩石检测【包含划分好的数据集、类别class文件、数据可视化脚本】,数据保存按照YOLOV5文件夹保存,可直接用作目标检测数据集,无需额外处理。 图像分辨率为640*640的大分辨率RGB图片,数据集为各种...
项目包含:10类别水稻害虫检测【包含划分好的数据集、类别class文件、数据可视化脚本】,数据保存按照YOLOV5文件夹保存,可直接用作目标检测数据集,无需额外处理。 图像分辨率为300*300的大分辨率RGB图片,数据集...
项目包含:4种航空发动机缺陷检测【包含划分好的数据集、类别class文件、数据可视化脚本】,数据保存按照YOLOV5文件夹保存,可直接用作目标检测数据集,无需额外处理。 图像分辨率为2000-3000的大分辨率RGB图片,...
项目包含:17种交通指示牌检测【包含划分好的数据集、类别class文件、数据可视化脚本】,数据保存按照YOLOV5文件夹保存,可直接用作目标检测数据集,无需额外处理。 图像分辨率为640*640的大分辨率RGB图片,数据集...
项目包含:石头剪刀布手势检测(3类别)【包含划分好的数据集、类别class文件、数据可视化脚本】,数据保存按照YOLOV5文件夹保存,可直接用作目标检测数据集,无需额外处理。 图像分辨率为640*640的大分辨率RGB图片...