学习JVM原理-9.ByteCode文件结构概述
摘自《深入理解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等