类文件结构包含如下几个部分:
- 魔数:固定值,确定文件是否是JVM接受的class文件
- 版本号:class文件的版本,保证编译正常执行
- 常量池:存放字面量和符号引用
- 访问标志:类或接口的访问信息,包括是类还是接口、public还是private、是否abstract、final等
- 当前类索引、父类索引:类索引用于确定类的全限定名,由于Java是单继承,父类索引只有一个,如果没有继承,默认继承java.lang.Object
- 接口索引集合:描述这个类实现了哪些接口,按从左到右顺序加入接口集合中
- 字段表集合:描述类或接口中声明的变量,包括类变量和实例变量,但不包括局部变量
- 方法表集合:类中方法的集合
- 属性表集合:字段表和方法表中都可携带属性表集合