字节码访问标志与字段表详解

在上一次【https://www.cnblogs.com/webor2006/p/9457722.html】对字节码的整体结构有了一个初步认识,回顾一下:

下面再来看另外一个更加直观的表:

其中需要说明的是:

如果接口个数为0的话,那么下面的接口名则不会出现了,其它的字段、方法、附加属性都类似。

还有一个需要说明:

下面以结构体的形式来看一下完整的Java字节码结构,当然啦也就是跟上面的表对应的:

下面再来补一补理论:

Class字节码中有两种数据类型:

  • 字节数据直接量:这是基本的数据类型。共细分为u1、u2、u3、u4四种,分别代表连续的1个字节、2个字节、4个字节、8个字节组成的整体数据。
  • 表(数组):表是由多个基本数据或其它表,依照既定顺序组成的大的数据集合。表是有结构的,它的结构体现在:组成表的成分所在的位置和顺序都是已经严格定义好的。

另外再来回顾一下常量池表:

上面的表中描述了11种数据类型的结构,其实在JDK1.7之后又增加了3种(CONSTANT_MethodHandle_info,CONSTANT_MethodType_info以及CONSTANT_InvokeDynamic_info)。这样一共是14种。

字节码Access_Flag访问标志:

好,在了解了常量池之后,接下来则是访问标志信息了,如下:

12_26 

字段表:

猜你喜欢

转载自www.cnblogs.com/webor2006/p/9457973.html
今日推荐