【笔记】深入理解 java 虚拟机---Class的文件结构【2】。

5 字段表集合


字段表结构

u2 (有几个字段),u2(字段的access_flag),u2(字段的索引),u2(字段的类型索引)



【笔记】深入理解 java 虚拟机---Class的文件结构【2】。_第1张图片

代码



【笔记】深入理解 java 虚拟机---Class的文件结构【2】。_第2张图片



class 文件



【笔记】深入理解 java 虚拟机---Class的文件结构【2】。_第3张图片

javap 



【笔记】深入理解 java 虚拟机---Class的文件结构【2】。_第4张图片


可以看到,我们代码有3个 变量。  

其中深色部分表示第一个变量

接着的 0011。是访问修饰。

0006 是指第6个索引。 对应m。

0007 对应是 i 。代表该字段是  int。

0001 对应属性表。

紧跟着4 个 u2 来描述 这个 属性。

0008  指向  constantvalue

0000 应该是 访问修饰

0002 不知道。

0009 执行具体值索引。

接着 的 8 个 u2 代表 了 我们定义的 q。


这 4个 u2 代表我们定义的 ttt。 因为没有属性,所以最后的u2 是 0000.也就比有属性的要短4位。



【笔记】深入理解 java 虚拟机---Class的文件结构【2】。_第5张图片


6方法表集合



好奇怪。我自己试了好几次,增加方法和减少方法。只有方法的总量改变了。

方法的内容没变


【笔记】深入理解 java 虚拟机---Class的文件结构【2】。_第6张图片



都是 u2 为一个单位,依次是,方法总数,访问修饰,方法索引,方法返回,方法属性表,方法内容。

你可能感兴趣的:(【笔记】深入理解 java 虚拟机---Class的文件结构【2】。)