Java类文件解析
类文件组成
组件 | 描述 |
---|---|
魔数 | 0XCAFEBABE |
类文件格式版本 | 该类文件的主版本号和次版本号,确保目标JVM版本不低于编译类文件编译版本,如果不兼容,会抛出UnsupportedClassVersionError |
常量池 | 该类的常量池,比如类、接口和字段的名字,使用产量池表来查找值 |
访问标志 | 该类是否为抽象类、静态类等,针对类的修饰符 |
当前类 | 该类的名字,指向常量池的索引,用于识别该类相关的类型层次 |
超类 | 超类的名字,指向常量池的索引,用于识别该类相关的类型层次 |
接口 | 该类实现的接口,指向常量池的索引,用于识别该类相关的类型层次 |
字段 | 该类的所有字段,定义为类似签名的结构,包括修饰符 |
方法 | 该类的所有方法,定义为类似签名的结构,包括修饰符 |
属性 | 该类的所有属性(比如,源文件的名字,等等) |
使用javap
可以对class
文件进行反汇编查看文件组成
-c
输出文件的字节码信息,主要是当前类定义本身-v
输出完整的类文件头信息和产量池详情
Java类文件解析
https://probiecoder.cn/java/class.html