第一部分
一 常量池的组成包括俩部分:1.常量池容量的计数值(u2类型的数据)。
2.常量池的俩类常量 :(1)字面量。(2)符号引用。
注:1)常量池中的每一个常量都是一个表,常量表中分别有17种不同类型的常量。
2)17种类型常量有一个共同的特点,表结构第一位是以u1类型的标志位,代表当前的常量属于那种常量类型。
1 类 型 标 志 描 述 2 CONSTANT_Utf8_info 1 UTF-8编码的字符串 3 CONSTANT_Integer_info 3 整型字面量 4 CONSTANT_Float_info 4 浮点型字面量 5 CONSTANT_Long_info 5 长整形字面量 6 CONSTANT_Double_info 6 双精度浮点型字面量 7 CONSTANT_Class_info 7 类或接口的符号引用 8 CONSTANT_String_info 8 字符串类型字面量 9 CONSTANT_Fieldref_info 9 字段的符号引用 10 CONSTANT_Methodref_info 10 类中的方法的符号引用 11 CONSTANT_InterfaceMethodref_info 11 接口的方法符号引用 12 CONSTANT_NameAndType_info 12 字段或方法的部分符号引用 13 CONSTANT_MethodHandle_info 15 表示方法句柄 14 CONSTANT_MethodType_info 16 标识方法类型 15 CONSTANT_Dynamic_info 17 表示一个动态计算常量
16 CONSTANT_InvokeDynamic_info 17 表示一个动态方法调用点
17 CONSTANT_Module_info 17 表示一个动态方法调用点
18 CONSTANT_Package_info 17 表示一个动态方法调用点
二 访问标志:是以2个字节代表访问标志,这个标志用于识别一些类或者接口层次的访问信息。
2个字节 ---》产生16个标志位作用,但是当前只定义9个,还有7个未定义。
三 类索引,父类索引和接口索引集合
1)类索引 u2 代表当前类的全限定名
2)父类索引 u2 代表当前父类的全限定名
3)接口索引集合 2*u2 当前类实现了那些接口
接口索引集合 第一个u2类型 表示接口计数量,表示索引量的容量。
第二个u2实现的接口(按照关键字后的接口顺序从左到右排列在接口集合中)。