标签:结构 无符号 计数 文件中 习惯 之间 没有 apt 多个
class文件是以8位字节为基础单位的二进制流,数据项按照顺序存储在class文件中,相邻的项之间没有任何间隔。占据多个字节的项按照高位在前的顺序分为几个连接的字节存放。可变长度项的大小和长度位于其实际数据之前。这个特性使得class文件流可以从头到尾被顺序解析,首先读出项的大小,然后读出项的数据。
class文件格式采用一种类似于C语言结构体的伪结构来存储数据,这种伪结构只有两种数据类型:无符号数和表。
无符号数属于基本数据类型,u1,u2,u4,u8分别代表1,2,4,8个字节长度的无符号数。
表是由多个无符号数或者其他表作为数据项构成的复合数据类型,所有表都习惯性得以_info结尾。表用于描述有层次关系的复合结构的数据,整个class文件本质上就是一张表。
数据项类型 | 数据项名称 | 该名称数据项的个数 |
u4 | magic (魔数) | 1 |
u2 | minor_version(次版本号) | 1 |
u2 | major_version(主版本号) | 1 |
u2 | constant_pool_count(常量池计数) | 1 |
cp_info | constant_pool(常量池) | constant_pool_count-1 |
标签:结构 无符号 计数 文件中 习惯 之间 没有 apt 多个
原文地址:http://www.cnblogs.com/jianmianruxin/p/6906205.html