Class文件索引简介
类索引(this_class)和父类索引(super_class)都是一个u2类型的数据,而接口索引集合(interfaces)是一组u2类型的数据的集合。
Class文件中由这三项数据来确定这个类的继承关系:
类索引用于确定这个类的全限定名。
父类索引用于确定这个类的父类的权限定名。
接口索引集合用来描述这个类实现了哪些接口,这些被实现的接口将按implements语句(如果这个类本身是一个接口,则应当是extends语句)后的接口顺序从左到右排列在接口的索引集合中。
索引的结构描述
类索引、父类索引和接口索引集合按顺序排列在访问标志之后。
类索引和父类索引
类索引和父类索引用两个u2类型的索引值表示,它们各自指向一个类型为CONSTANT_Class_info的类描述符常量,通过CONSTANT_Class_info类型的常量中的索引值可以找到定义在CONSTANT_Utf8_info类型的常量中的全限定名字符串。
1 | 索引/父类索引 常量池 常量池 |
接口索引集合
接口索引集合,入口第一项————u2类型的数据为接口计数器(interfaces_count),表示索引表的容量。
如果该类没有实现任何接口,那么该计数器值为0,后面接口的索引表不再占用任何字节。