常量池中的项⽬类型
项⽬类型描述CONSTANT_Utf8_info1UTF-8编码的字符串CONSTANT_Integer_info3整形字⾯量
CONSTANT_Float_info4浮点型字⾯量
个人年终工作总结
CONSTANT_Long_info5长整型字⾯量
赞誉的反义词CONSTANT_Double_info6双精度浮点型字⾯量CONSTANT_Class_info7类或接⼝的符号引⽤CONSTANT_String_info8字符串类型字⾯量
CONSTANT_Fieldref_info9字段的符号引⽤
CONSTANT_Methodref_info10类中⽅法的符号引⽤CONSTANT_InterfaceMethodref_info11接⼝中⽅法的符号引⽤CONSTANT_NameAndType_info12字段或⽅法的部分符号引⽤CONSTANT_MethodHandle_info15表⽰⽅法句柄
CONSTANT_MethodType_info16表⽰⽅法类型
CONSTANT_Dynamic_info17表⽰⼀个动态计算常量CONSTANT_InvkoeDynamic_info18表⽰⼀个动态⽅法调⽤点CONSTANT_Module_info19表⽰⼀个模块
CONSTANT_Package_info20表⽰⼀个模块中开放或者导出的包具体表信息和表结构如下:
2.2.2.1 CON STAN T_U tf8_info
类型标志描述
tag u1值为1
length u2UTF-8编码的字符串占⽤的字节数
bytes u1长度为length的UTF-8编码的字符串,总共length个
2.2.2.2 CON STAN T_Integer_info
项⽬类型描述
tag u1值为3
bytes u4按照⾼位在前存储的int值
2.2.2.3 CON STAN T_Flo a t_info
项⽬类型描述
tag u1值为4
项⽬类型描述bytes u4按照⾼位在前存储的float值
2.2.2.4 CON STAN T_Lo ng_info
项⽬类型描述
tag u1值为5
bytes u8按照⾼位在前存储的long值
2.2.2.5 CON STAN T_Do uble_info
项⽬类型描述
tag u1值为6
bytes u8按照⾼位在前存储的double值
2.2.2.6 CON STAN T_Cla ss_info
项⽬类型描述
tag u1值为7
index u2指向全限定名常量项的索引
2.2.2.7 CON STAN T_String_info
项⽬类型描述
tag u1值为8
index u2指向字符串字⾯量的索引
2.2.2.8 CON STAN T_Fieldref_info
项⽬类型描述
tag u1值为9
index u2指向声明字段的类或者接⼝描述符CONSTANT_Class_info的索引项index u2指向字段描述符CONSTANT_NameAndType的索引项
2.2.2.9 CON STAN T_Metho dref_info
项⽬类型描述
牛排照片tag u1值为10
index u2指向声明⽅法的类或者接⼝描述符CONSTANT_Class的索引项index u2指向名称及类型描述符CONSTANT_NameAndType的索引项
2.2.2.10 CON STAN T_Interfa c eMetho dref_info
项⽬类型描述
tag u1值为11
index u2指向声明⽅法的接⼝描述符CONSTANT_Class的索引项index u2指向名称及类型描述符CONSTANT_NameAndType的索引项2.2.2.11 CON STAN T_N a meAndType_info
项⽬类型描述
tag u1值为12
index u2指向该字段或⽅法名称常量项的索引
index u2指向该字段或⽅法描述符常量项的索引实习单位对实习生的评价
2.2.2.12 CON STAN T_Metho dH a ndle_info去澳大利亚留学
项⽬类
型
描述
tag u1值为15
代北
reference_kind u1值必须在1⾄9之间[1-9]它决定了⽅法句柄的类型。⽅法句柄类型的值表⽰⽅法句柄的字节码⾏为reference_inde
x
u2值必须是对敞亮吃的有效索引
2.2.2.13 CON STAN T_Metho dType_info
项⽬类
型
描述
tag u1值为16
descriptor_ind ex u2
值必须是对常量池的有效索引,常量池在该索引处的项必须是CONSTANT_Utf8_info结构,表⽰⽅法的描述符
2.2.2.14 CON STAN T_Dyna mic_info
项⽬类
型
描述
李成和
tag u
1
值为17属牛的是什么命
bootstrap_method_ attr_index u
2
值必须是对当前Class⽂件中引导⽅法表的bootstrap_methods[]数组的有效索引
name_and_type_ind ex u
2
值必须是对当前常量池的有效索引,常量池在该索引处的项必须是CONSTANT_NameAndType_info结构,表⽰⽅法名和⽅法描述符
2.2.2.15 CON STAN T_Invk o eDyna m ic_info
项⽬类
型
描述
tag
u 1值为18
bootstrap_method_attr_index
u 2值必须是对当前Class⽂件中引导⽅法表的bootstrap_methods[]数组的有效索引name_and_type_ind ex
u 2
值必须是对当前常量池的有效索引,常量池在该索引处的项必须是CONSTANT_NameAndType_info结构,表⽰⽅法名和⽅法描述符
项⽬
类型描述
2.2.2.16 CON STAN T_Mo dule_info
项⽬类型描述
tag u1值为19
name_inde x
u2
值必须是对常量池的有效索引,常量池在该索引处的项必须是CONSTANT_Utf8_info结构,表⽰模块名称
2.2.2.17 CON STAN T_Pa c k a ge_info
项⽬类型描述
tag u1值为19
name_inde x
u2
值必须是对常量池的有效索引,常量池在该索引处的项必须是CONSTANT_Utf8_info结构,表⽰包名称
3. 查看常量池表
如果我们使⽤⽂本编辑器打开某个Class⽂件,那么你见到的场景⼤概是这样的:
image.png