深入理解jvm --第六章 类文件结构
bootstrap_method_attr_index..................................................................... 23
RuntimeVisibleParameterAnnotations............................................................. 30
RuntimeInvisibleParameterAnnotations........................................................... 30
magic
u4类型,1个,值固定为0xCAFEBABE
minor_version
u2类型,1个
major_version
u2类型,1个
access_flags
u2类型,1个,各标识按位或得到
ACC_PUBLIC
0x0001
ACC_FINAL
0x0010
ACC_SUPER
0x0020
是否允许使用invokespecial字节码指令的新语义,invokespevial指令的语义在jdk1.0.2发生过改变,为了区别这条指令使用哪种语义,jdk1.0.2之后编译出来的类的这个标志都必须为真
ACC_INTERFACE
0x0200
ACC_ABSTRACT
0x0400
ACC_SYNTHETIC
0x1000 标识这个类并非由用户代码产生的
ACC_ANNOTATION
0x2000
ACC_ENUM
0x4000
this_class
u2类型,1个
super_class
u2类型,1个
interfaces
u2类型,interfaces_count个
interfaces_count
u2类型,1个
fields_count
u2类型,1个
methods_count
u2类型,1个
attributes_count
u2类型,1个
constant_pool
cp_info类型,constant_pool_conut个
无符号数
u2类型,1个,从1开始
表
标志1,描述UTF-8编码的字符串
u1类型,数量1个
u2类型,数量1个,描述UTF-8编码的字符串占用的字节数
u1类型,数量length个,长度为length的UTF-8编码的字符串
标志3,描述整型字面量
u1类型,数量1个
u4类型,数量l1个,按高位在前存储的int值
标志4,描述浮点型字面量
u1类型,数量1个
u4类型,数量1个,按高位在前存储的float值
标志5,描述长整型字面量
u1类型,数量1个
u8类型,数量1个,按高位在前存储的long值
标志6,描述双精度浮点型字面量
u1类型,数量1个
u8类型,数量1个,按高位在前存储的double值
标志7,描述类或接口的符号引用
u1类型,数量1个
u2类型,数量1个,指向全限定名常量项的索引
标志8,描述字符串类型字面量
u1类型,数量1个
u2类型,数量1个,指向字符串字面量的索引
标志9,描述字段的符号引用
u1类型,数量1个
u2类型,数量1个,指向声明字段的类或者接口描述符CONSTANT_Class_info的索引项
u2类型,数量1个,指向字段描述符CONSTANT_NameAndType的索引项
标志10,描述类中方法的符号引用
u1类型,数量1个
u2类型,数量1个,指向声明方法的类描述符 CONSTANT_Class_info的索引项
u2类型,数量1个,指向名称及类型描述符CONSTANT_NameAndType的索引项
CONSTANT_InterfaceMethodref_info
标志11,描述接口中方法的符号引用
u1类型,数量1个
u2类型,数量1个,指向声明方法的类描述符 CONSTANT_Class_info的索引项
u2类型,数量1个,指向名称及类型描述符CONSTANT_NameAndType的索引项
标志12,描述字段或方法的部分符号引用
u1类型,数量1个
u2类型,数量1个,指向该字段或方法名称常量项的索引
u2类型,数量1个,指向该字段或方法描述符常量项的索引
标志15,表示方法句柄
u1类型,数量1个
u1类型,数量1个,值必须在[1,9]之间,它决定了方法句柄的类型。方法句柄类型的值表示方法句柄的字节码行为
u2类型,数量1个,值是对常量池的有效索引
标志16,标识方法类型
u1类型,数量1个
u2类型,数量1个,值必须是对常量池的有效索引,常量池在该索引处的项必须是CONSTANT_Utf8_info结构,表示方法的描述符
标志18,表示一个动态方法调用点
u1类型,数量1个
u2类型,数量1个,必须是对当前Class文件中引导方法表的bootstrap_methods[]数组的有效索引
u2类型,数量1个,值必须是对当前常量池的有效索引,常量池在该索引处的项必须是CONSTANT_NameAndType_info结构,表示方法名和方法描述符
fields
fields_info类型,fields_count个
无符号数
表
methods
method_info类型,method_info个
无符号数
表
attributes
attribute_info类型,attributes_count个
无符号数
表
RuntimeVisibleParameterAnnotations