4.类文件结构
简单粗略介绍class文件的结构。
-
类文件
类文件由无符号数和表构成,且占用整数个字节的空间
- 无符号数
- u1u2u4u8,用来描述数字索引引用数量值字符串值。
- 表
- 多个无符号数或其他表作为数据项构成的复合数据结构。
- 无符号数
-
类文件数据
魔数与版本号,常量池,访问标志,类索引父类索引接口索引,字段表集合,方法表集合,属性表集合。
-
魔数与版本号
- 文件的头四个字节为0XCAFEBABE,代表此文件为class文件,接下来存储的是文件的次版本号和主版本号。
-
常量池
主要存放字面量和符号引用。
- 字面量:文本字符串、final声明的常量值等。
- 符号引用:类/接口的全限定名,字段的名称和描述符,方法的名称和描述符。
-
访问标志
标志类/接口的访问信息。
- 是类还是接口
- 是否为public、final、abstract…等等。
-
类索引父类索引接口索引
用来确认类的继承关系。
-
字段表集合
描述接口/类中声明的变量。包括类变量和实例变量。
-
方法表集合
描述类/接口中声明的方法信息。
-
属性表集合
在class文件、字段表、方法表中都携带自己的属性表集合。
- 包含:字节码,常量值,方法可抛出的受检查异常,内部类列表等等。
-
来源:CSDN
作者:tank59he
链接:https://blog.csdn.net/hu853996234/article/details/103747378