Class类文件的结构(三)方法表和属性表

一、方法表

方法表结构如下图所示:

在这里插入图片描述
和字段表类似,依次包含访问标志(access_flags)、名称索引(name_index)、描述符索引(descriptor_index)、属性表集合(attributes)几项。

因为volatile关键字和transient关键字不能修饰方法,所以方法表中的访问标志没有这两个。与之相对的,synchronized、native、strictfp和abstract关键字可以修饰方法,方法表标志位取值如下:

在这里插入图片描述
继续通过Class类文件的结构(二)字段表集合中的示例来看

在这里插入图片描述
常量池中的对应关系:
在这里插入图片描述
通过上面两个图可知,该类共有两个方法(一个是类的默认构造方法init,还有一个是int型的inc方法)
这里可以看到第一个方法(init默认构造方法)的访问标志是0x0001,也就是public,简单名称为 < init> ,描述符是()V,也就是void。

跟在方法描述符后面的就是属性表的计数器,代表属性表中有几个属性。
在这里插入图片描述
属性计数器为0x0001说明属性表中有一项属性
属性名称索引为0x0009,对应常量池中的code,说明此属性是方法的字节码描述。

Code,代码,顾名思义就是存储方法中的代码,Java代码经过编译器编译成字节码指令之后,存放在Code属

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值