class文件格式

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

ClassFile 结构如下:

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




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值