魔数
u4 magic; //魔数
魔数的位置是固定的,也就是每个Class文件的头4个字节,它只有一个作用,就是标识这个文件是不是一个内被JVM接收的.class文件,简单来说魔数就是为了标识文件类型。
魔数的思想不光用在Class文件里,比如gif、jpeg这些文件都有魔数来标识文件类型。
/ * 如图所示,十六进制的cafe baby用来表示Class文件的魔数 * /
版本号
u2 minor_version; //次版本号
u2 major_version; //主版本号
紧跟在魔数后面的4个字节存储的是版本号,其中第5、第6字节是此版本号,第7、第8是主版本号
可以从示例中看到
此版本号(Minor version):0x 0000
主版本号(Major version):0x 0034
表:Major version与JDK版本的对应关系
JDK版本 | Major version | 对应十六进制 |
---|---|---|
1.1 | 45.0 | 00 00 00 2D |
1.2 | 46.0 | 00 00 00 2E |
1.3 | 47.0 | 00 00 00 2F |
1.4 | 48.0 | 00 00 00 30 |
1.5 | 49.0 | 00 00 00 31 |
1.6 | 50.0 | 00 00 00 32 |
1.7 | 51.0 | 00 00 00 33 |
1.8 | 52.0 | 00 00 00 34 |