class类文件结构总结

1.魔数与class文件版本等

2.常量池

  常量池可以理解为Class文件之中的资源仓库。

  常量池中主要存放两大类常量:字面量和符号引用。

字面量文本字符串、声明为final的常量等
符号引用类和接口的全限定名,字段的名称和描述符,方法的名称和描述符

  描述符:描述字段的数据类型、方法的参数列表(包括数量,顺序以及类型)和返回值

3.字段信息(字段表集合):描述类或接口中声明的变量,不包括在方法内部声明的变量,也不包括从超类或父接口中继承而来的字段

  (1)字段的修饰符

    pulibc,protected,private,static,final,volatile,transient

  (2)字段数据类型(描述符索引)

    无法固定,所以引用的常量池中的常量来描述。

  (3)字段名称(字段名称索引)

    无法固定,所以引用的常量池中的常量来描述。

  (4)属性表集合

4.方法信息(方法表集合):

  (1)方法修饰符

    去掉了volatile和transient,增加了synchronized,native,abstract,strictfp等

  (2)方法名称索引

  (3)描述符索引

  (4)属性表集合

    Code:方法体中的代码经过编译器编译成字节码指令后,存放在Code属性中

5.类信息

  (1)类索引

    确定这个类的全限定类名

  (2)父类索引

    确定这个类的父类的全限定类名

  (3)接口索引集合

    确定这些类实现了哪些接口

  (4)访问标识

    包括:这个Class是类还是接口,访问修饰符public final  abstract 等等。

转载于:https://www.cnblogs.com/sstone/p/8548746.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值