引用字段的简单名称和描述符
引用方法的简单名称和描述符
字符的存放:
对于0x0001-0x007f的字符将使用一个字节(该字节的0-6位,第7位为0)存放
对于0x080-0x07ff的字符将使用两个字节(依次高字节的0-5位和低字节的0-4位,剩余位分别为10、110)存放
对于0x0800-0xffff的字符将使用3个字节(依次为高字节的0-5中间字节的0-5,和低字节的0-3位,剩余位分别为10、10、1110)存放。
(2).CONSTANT_Integer结构:
TypeNameCountu4 bytes 1
按高位在前的格式存储int型数据
(3).CONSTANT_Float结构:
TypeNameCountu4 bytes 1
按高位在前的格式存储float型数据
(4).CONSTANT_Doube结构:
u8 bytes 1
按高位在前的格式存储double型数据
(5).CONSTANT_Long结构:
u8 bytes 1
按高位在前的格式存储long型数据
(6).CONSTANT_Class结构:
u2 name_index 1
name_index为类或者接口符号引用的CONSTANT_Utf8常量池的索引(全限定名)
(7).CONSTANT_String结构:
u2 sring_index 1
string_index为字符串的CONSTANT_Utf8常量池的索引
(8).CONSTANT_Fieldref结构:
描述了指向字段的符号引用,其内容分两项表示,一项为被引用字段所在类或接口的CONSTANT_Class常量池索引,一项为字段的简单名称和描述符,指向一个CONSTANT_NameAndType常量池
u2 class_index 1
u2 name_and_type_index 1
(9).CONSTANT_Methodref结构:
与CONSTANT_Fieldref类似,描述了指向类中声明的方法的符号引用,其内容分两项表示,一项为被引用方法所在类的CONSTANT_Class常量池索引,一项为方法的简单名称和描述符,指向一个CONSTANT_NameAndType常量池
u2 class_index 1
u2 name_and_type_index 1
(10).CONSTANT_InterfaceMethodref结构:
与CONSTANT_Methodref类似,描述了指向接口中声明的方法的符号引用,其内容分两项表示,一项为被引用方法所在接口的CONSTANT_Class常量池索引,一项为方法的简单名称和描述符,指向一个CONSTANT_NameAndType常量池
u2 class_index 1
u2 name_and_type_index 1
(11).CONSTANT_NameAndType结构:
可以预见,该常量池提供了所引用字段或方法的简单名称和常量池入口
u2 class_index 1
u2 name_and_type_index 1