查Java Class 文件的编译版本号

Aug 16, 2018 阅读(2348)

标签: Jdk Java

魔数与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 文件的编译版本号

  • 使用文本编辑器查看

image.png

002e 对应十进制为 46也就是JDK 1.2


  • 使用eclipse 查看

image.png

  • 使用javap 查看

image.png


Class版本号和JDK对应关系:  JDK 1.(Major Version - 44)

JDK十进制版本号
1.145
1.246
1.347
依次类加...依次类加...


MongoDB学习园