1、直接看:
访问标志:
22 0xE9 0x0021 类/接口的访问标记,public,为类
类索引、父类索引、接口索引集合:
23 0xEB 0x000100030000 0x0001本类,0x0003父类,0x0000接口数为0(接口数不为0时,后面跟着接口索引)
字段表集合:
24 0xF1 0x0001 只有一个字段
25 0xF3 0x0002 0005 0006 0000 其中0002表示private,0005指向m,0006指向I
2、字段表的结构:
类型 | 名称 | 数量 |
---|---|---|
u2 | access_flags | 1 |
u2 | name_index | 1 |
u2 | desciptor_index | 1 |
u2 | attributes_count | 1 |
attribute_info | attributes | attributes_count |
这里attributes_count=0,如果字段m为“private final int m = 3”,则存在ConstantValue的属性:
3、方法表字节码,方法表结果和字段表结构一样:
方法表集合:
24 0xFB 0x0002 有两个方法
25 0xFD 0x0001 0007 0008 0001 0009 其中0x0001为public,0x0007指向<init>,0x0008指向()V,0x0001一个属性,0x0009指向Code(方法的字节码描述)
方法体里面的代码用Code属性表示,属性表是Class文件最具扩展性的数据项目