分析.class字节码文件(下):标识,字段和方法

目录

标识

access_flags访问权限

this_class包名和类名

super_class

interfaces_count

字段

field_info fields

方法

method_info methods


      接着上一篇,在第50字节处数据有一个类型为u1=1的,即UTF-8编码的字符串变量a,在它之后又有一个UTF-8编码字符串“Ljava/lang/String”,表示a变量的类型是Scanner对象,元素字节数据第57字节一直到第75字节处。接着继续看下面的字节码文件部分。

 

标识

access_flags访问权限

      上面一大堆常量池数组元素,之后接着的是第四部分,类的访问权限(上篇日志已经简单总结了.class字节码文件的前三部分:魔数、版本号和常量池),access_flags访问权限元素的标志位tag类型是u2,前面说过,u1类型占一个字节,u2类型占两个字节,还有u4和u8,分别标识4和8字节的无符号数。类的访问权限,很好理解,就是当前类,或这个接口的访问类型是public,private还是其他,access_flags的标志有如下类型:

0x0001

ACC_PUBLIC

是否为public访问类型

0x0010

ACC_FINAL

是否为final访问类型

0x0020

ACC_SUPER

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值