首页 > 代码库 > Class文件

Class文件

       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
     
     
     
     
     
     
     
     
     
     
     

Class文件