魔数与Class文件版本
每个Class 文件的头4个字节称为魔术(Magic Number),它的唯一作用是用于确定这个文件是否为一个能被虚拟机接手的Class 文件;
很多文件存储标准中都使用魔数来进行身份识别,譬如图片格式,如gif或jpeg等在文件中都存有魔数.使用魔数而不使用扩展名来进行识别主要是基于安全考虑,因为文件的扩展名可以很容易地被改动.
Class 文件的魔数值为:0xCAFEBABE;
紧接着魔数的4个字节存储的是Class文件的版本号:
第5,6个字节是次版本号(Minor Version);
第7,8个字节是主版本号(Major Version);
Java 版本号是从45(JDK 1.1)开始的,JDK 1.1之后每个大版本发布主版本号加1,高版本的JDK能向下兼容底版本的Class 文件,但不能运行高版本号的Class 文件,即使文件格式并未发生变化.
查Java Class 文件的编译版本号
使用文本编辑器查看
002e 对应十进制为 46也就是JDK 1.2
使用eclipse 查看
使用javap 查看
Class版本号和JDK对应关系: JDK 1.(Major Version - 44)
JDK | 十进制版本号 |
1.1 | 45 |
1.2 | 46 |
1.3 | 47 |
依次类加... | 依次类加... |