摘自《深入理解Java虚拟机》周志明著
ByteCode类文件
1. 二进制文件
2. 以字节为单位存放有意义的数据,不以0/1为单位(怪不得叫字节码?)
3. 某段数据的意义由它所处的位置来定,并不像XML或JSON一样有元数据,如<name>abc</name>,ByteCode文件里只有"abc"
数据结构的范式(把一个类文件看作一栋楼)
1. 砖头: 无符号数
2. 房间: Table, 由无符号数搭建而成
3. Table下可以有Table
4. 整个类文件就是一个Table
主要数据成员:
1.Magic Number,表明当前文件是Class文件(固定为0xCAFEBABE)
2.minor_version 和 major_version,这决定了本class可以被什么版本的JRE运行
3.constant pool
4.access_flags, this_class,super_class, interfaces等
5.fields, methods
6.attributes,如字节码指令,exceptions,line number等