首页 > 其他 > 详细

class文件结构

时间:2020-06-11 00:10:35      阅读:48      评论:0      收藏:0      [点我收藏+]

 

技术分享图片

 

!!一个class文件——用于描述一个类或接口

magic:魔数,用来判断一个文件是不是class文件,class文件的魔术为0xCAFEBABY

版本号。

constant_pool_count:常量池中有constant_pool_count-1个常量

常量池:储存常量,索引从1——contant_pool_count-1,存储的常量有个共同特征——每个常量的第一个字节为tag byte,用于识别常量的类型

access_flag:访问标志

this_class:类索引,为一个整数值(constant_pool中的有效索引)。例如,this_class为5,那么类索引就表示常量池中索引为5处的常量(这个常量必须为Class_info结构),这个Class_info常量表示class文件定义的类或接口

super_class:父类索引,也是一个整数值(0或constant_pool中的有效索引),例如,super_class为3,那么父类索引表示常量池中索引为3处的常量(这个常量必须为Class_info结构),这个Class_info常量表示class文件定义的类或接口的父类

interface_count:表示接口的数量

interfaces[ ]:interfaces[0]——interfaces[interface_count-1]存储的都是整数值,例如,interfaces[2]的值为6,那么这个class文件表示的类,它的第三个接口为常量池中索引为6处的常量(这个常量必须为Class_info结构)

field_count:fields[ ]中的field_info数量

fields[ ]:字段表,含有field_count个field_info结构。一个field_info结构表示某个字段的完整描述,fields[ ]表示class文件表示的类中所有的字段。

method_count:methods[ ]中的method_info数量

methods[ ]:方法表,含有method_count个method_info结构,一个method_info结构表示某个方法的完整描述,method_info结构可以表示类或接口中定义的所有方法,包括实例方法,类方法,实例初始化方法,类或接口初始化方法。methods[ ]只表示当前类或接口中的所有方法,不包含从父类或父接口中继承的方法。

attribute_count:表示attributes[ ]中attribute_info结构的数量

attributes[ ]:属性表,attribute_count个attribute_info结构

 

class文件结构

原文:https://www.cnblogs.com/huangxiangqi/p/13089338.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!