Java类文件解析

类文件组成

组件 描述
魔数 0XCAFEBABE
类文件格式版本 该类文件的主版本号和次版本号,确保目标JVM版本不低于编译类文件编译版本,如果不兼容,会抛出UnsupportedClassVersionError
常量池 该类的常量池,比如类、接口和字段的名字,使用产量池表来查找值
访问标志 该类是否为抽象类、静态类等,针对类的修饰符
当前类 该类的名字,指向常量池的索引,用于识别该类相关的类型层次
超类 超类的名字,指向常量池的索引,用于识别该类相关的类型层次
接口 该类实现的接口,指向常量池的索引,用于识别该类相关的类型层次
字段 该类的所有字段,定义为类似签名的结构,包括修饰符
方法 该类的所有方法,定义为类似签名的结构,包括修饰符
属性 该类的所有属性(比如,源文件的名字,等等)

image-20240813082353377

使用javap可以对class文件进行反汇编查看文件组成

  • -c输出文件的字节码信息,主要是当前类定义本身
  • -v输出完整的类文件头信息和产量池详情

Java类文件解析
https://probiecoder.cn/java/class.html
作者
duwei
发布于
2025年4月22日
许可协议