问问题描述
答精选答案

在Class文件被加载的时候,检验其将进行许多检查,比如检查每隔class文件是否以0xCAFEBABE开头。
(这也是为什么Java的图标是一杯香浓的咖啡的原因吧)。编译器强制每隔class文件都以这样一个字节开可以很容易的分辨出某个文件是否有明显的问题。除此之外检验其还会确认class文件中声明的主版本号和次版本号,这个版本号必须在当前Java虚拟机可以支持的范围内。class文件中每个组成部分都声明了它的长度和类型。检验其可以根据组成部分的类型和长度确定整个class文件的正确的总长度,这样检验其很容易发现class文件内容是否有删节,尾部是否附带其他的字节等情况。这一趟的检验主要目的是保证这个字节序列正确的定义了一个新类型,它必须遵从Java的class文件的固定格式。如果检查没有问题后,class文件将被编译成方法去中的内部数据结构。后面的检查不是在符合class文件格式的二进制数据上进行,而是在方法区中的数据结构上进行的。
本文来自作者[林林讲影视]投稿,不代表公众科技网立场,如若转载,请注明出处:https://www.cpst.net.cn/peixunjingxuan/202609/111471.html
评论列表(4条)
我是公众科技网的签约作者“林林讲影视”!
希望本篇文章《java加载验证什么内容》能对你有所帮助!
本站[公众科技网]内容主要涵盖:教育咨询,知识百科
本文概览:在Class文件被加载的时候,检验其将进行许多检查,比如检查每隔class文件是否以0xCAFEBABE开头。(这也是为什么Java的图标是一杯香浓的咖啡的原因吧)。编译器强制每隔class文件都以这样一个字节开可以很容易的分辨出某个文件是否有明显的问题。除此之外检验其还会确认class文件中声明的主版本号和次版本号,这个版本号必须在当前Java虚拟机可以支持的范围内。class文件中每个组成部分都声明了它的长度和类型。检验其可以根据组成部分的类型和长度确定整个class文件的正确的总长度,这样