六. 类文件结构

2017-10-10  本文已影响0人  柒黍

6.1 Class类文件的结构

Class文件是一组以8位字节位基础单位的二进制流,当需要占用8位字节以上空间的数据项时,则会按照高位在前的方式分割成若干个8位字节进行存储。在存储数据中只有两种结构:无符号数和表。

总结: Class结构中的数据项,无论顺序还是数量等都是被阉割限定的。

6.1.1 魔数和版本号

每个Class文件的头4个字节称之为魔数,它的唯一作用是确定这个文件是否为一个能被虚拟机接受的Class文件,值为 0xCAFEBABE.
第56个字节是主版本号,78个字节是次版本号.

6.1.2 常量池

在版本号之后是常量池入口,常量池可以理解为Class文件之中的资源仓库,是占用Class文件空间最大的数据项目之一.

常量池中存放两大类常量:字面量符号引用.

6.1.3 访问标志

access_flags用于识别一些类或者接口层次的访问信息:


一共有16个标志位可以使用,当前只定义了8个,没有使用的要求一律为0,通过 | 的方式组合.

6.1.4 类索引,父类索引与接口索引集合

类索引(this_class)和父类索引(super_class)都是u2类型数据,接口索引(interfaces)是一组u2类型的数据集合

上一篇下一篇

猜你喜欢

热点阅读