class文件格式

来源:互联网 发布:sql打不开 编辑:程序博客网 时间:2024/06/02 14:51

每个class文件都对应着唯一一个类或接口的定义信息,该文件都是由字节流组成。其中u1、u2和u4分别代表了1、2和4字节的无符号数,用它们来表示class文件的内容。

ClassFile 结构如下:

<span style="font-size:14px;">ClassFile{u4     magic;//魔数:0xCAFEBABEu2     minor_version;//次版本号u2     major_version;//主版本号:JDK版本(k>=2),对应的范围为45.0~44+k.0u2constant_pool_count;//值为常量池成员数+1cp_info constant_pool[constant_pool_count];//下标为0:表示“不引用任何一个常量池”u2access_flags;//访问标志u2this_class;//类索引(常量池表中的一个有效索引),该索引处的成员为CONSTANT_Class_info类型常量(类/接口)u2super_flags;//父类索引,类:(0或者常量池有效索引),0表示该类为Object;//接口:对应Object类的CONSTANT_Class_info的索引u2interfaces_count;//接口计数器,可以为0u2interfaces[interfaces_count];//接口表:常量池中CONSTANT_Class_info的有效索引u2fields_count;//字段计数器field_infofields[fields_count];//字段表:成员为field_info结构,不包括父类或父接口的字段u2methods_count;//方法计数器method_infomethods[methods_count];//方法表:成员为method_info结构,包括<clinit>和<init>,不包括父类或父接口的方法u2attributes_count;//属性计数器attribute_infoattributes[attributes_count];//属性表:成员为attribute_info结构,Signature、InnerClasses等}</span>




1 0
原创粉丝点击