字节码文件结构

参考文章

版本信息

  • Class 文件的第 1 - 4 个字节代表了该文件的魔数(Magic Number)。它唯一的作用是确定这个文件是否为一个能被虚拟机接受的 Class 文件,CAFEBABE
  • Class 文件的第 5 - 6 个字节代表了编译该 Class 文件的 JDK 次版本号。
  • Class 文件的第 7 - 8 个字节代表了编译该 Class 文件的 JDK 主版本号。

常量池

个数
常量内容

访问标志

这个标志用于识别一些类或者接口层次的访问信息,包括:这个Class是类还是接口、是否定义为public类型、是否定义为abstract类型等

类索引、父类索引、接口索引

  • 类索引用于确定这个类的全限定名
  • 父类索引用于确定这个类的父类的全限定名
  • 接口索引集合就用来描述哪个类实现了哪些接口

字段表集合

字段表集合用于描述接口或者类中声明的变量(包括类级变量和实例级变量,但不包括在方法内部声明的局部变量

方法表集合

属性表集合

image.png

image.png

你可能感兴趣的:(字节码文件结构)