22 字段表集合

fields:字段表是指向常量池索引集合,描述了每个字段的完整信息。


image.png

1,父类定义的变量是不会存在于子类的field表结构中的。

2,Java语言规范中,不允许同一个类中有重名的字段,但是Java虚拟机规范表示在一个类中,只要有不同的方法描述符就可以共存,比如两个重名但是类型不同对Class文件来说是合法的。

字段表可以看作是一个数组,每一个元素都是field_info,注意区分field_info和CONSTANT_Fieldref_info的结构。

field_info结构:


image.png

CONSTANT_Class_info结构:


image.png

应该说,field_info中可能会引用CONSTANT_Class_info。

image.png

name_index:字段名索引
根据字段名索引的值,查询常量池中的制定索引项即可。
descriptor_index:描述符索引
描述符的作用是用来描述字段的数据类型、方法的参数列表(数量、类型及顺序)和返回值。

(字段的)属性表集合:
image.png

你可能感兴趣的:(22 字段表集合)