JVM:类文件结构

Java实现语言无关的基石是JVM和字节码存储格式。

任何一个Class文件都对应唯一一个类或接口的定义信息。,但是反过来说,类或者接口不一定定义在文件中,有可能通过类加载器直接生成。

Class文件以8字节为基本单位二进制流存储,当遇到8字节以上时,会按照高位在前的方式分割成若干8字节进行存储。

Class文件的格式如下:

JVM:类文件结构

Class文件的头4个字节表示魔数,主要用来判断是够能被JVM所接受。紧接着4个字节表示Class文件的版本号,5,6个字节表示次版本,7,8个字节表示主版本。

常量池

常量池有两大类常量:字面量和符号引用。

字面量,例如文本字符串、声明为final的常量值。

符号引用:类和接口的全限定名、字段的名称和描述符、方法的名称和描述符。

JVM:类文件结构

常量池中有14中不同类型的常量类型,每一个都有自己的结构。

Class文件的访问标志

JVM:类文件结构