为了账号安全,请及时绑定邮箱和手机立即绑定

类文件结构

标签:
Java

一. 类文件结构

    Class文件格式采用一种类似于C语言结构体的伪结构来存储数据。

    这种伪结构中只有两种数据类型:无符号数和表。

        无符号数:基于基本的数据类型,以u1、u2、u4、u8来分别代表1个字节、2个字节、4个字节、8个字节的无符号数。可以用来描述数字、索引引用、数量值或按UTF-8编码构成字符串值。

        表:由多个无符号数或其他表作为数据项构成的复合数据类型。,所有表都习惯性地以"_info"结尾。整个Class文件本质上就是一张表。

    Class文件格式:

类型名称数量说明作用
u4magic1魔数0xCAFEBABE确定这个文件是否为一个能被虚拟机接受的Class文件
u2minor_version1次版本号
高版本的JDK向下兼容以前版本的Class文件
u2major_version1主版本号
u2constant_pool_count1常量池容量计数值
容量计数是从1而不是0开始的
cp_infoconstant_poolconstant_pool_count-1常量池
存放字面量和符号引用,常量池中的每一项常量都是一个表
u2access_flags1访问标志
识别一些类或接口层次的访问信息
u2this_class1类索引
用于确定这个类的全限定名
u2super_class1父类索引
用于确定这个类的父类的全限定名(除Object外所有类的父类索引都不为0)
u2interfaces_count1接口索引数值

u2interfacesinterfaces_count接口索引集合
用来描述这个类实现了哪些接口
u2fields_count1


field_infofieldsfields_count字段表
用于描述接口或者类中声明的变量(不包含方法内部声明的局部变量)
u2methods_count1


method_infomethodsmethods_count方法表

u2attributes_count1


attribute_infoattributesattributes_count

Class文件、字段表、方发表都可以携带自己的属性表集合、以用于描述某些场景专有信息


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消