魔数与Class 文件的版本

Posted 四猿外

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了魔数与Class 文件的版本相关的知识,希望对你有一定的参考价值。

每个Class 文件的头4 个字节称为魔数(Magic Number),它的唯一作用是确定这个文件是否为一个能被虚拟机接受的Class 文件。使用魔数而不是扩展名来进行识别主要是基于安全方面的考虑,因为文件扩展名可以随意地改动。文件格式的制定者可以自由地选择魔数值,只要这个魔数值还没有被广泛采用过同时又不会引起混淆即可。

紧接着魔数的4 个字节存储的是Class 文件的版本号:第5 和第6 个字节是次版本号(MinorVersion),第7 和第8 个字节是主版本号(Major Version)。Java 的版本号是从45 开始的,JDK 1.1 之后的每个JDK 大版本发布主版本号向上加1 高版本的JDK 能向下兼容以前版本的Class 文件,但不能运行以后版本的Class 文件,即使文件格式并未发生任何变化,虚拟机也必须拒绝执行超过其版本号的Class 文件。

以上是关于魔数与Class 文件的版本的主要内容,如果未能解决你的问题,请参考以下文章

魔数与Class 文件的版本

class类加载

Java虚拟机-类文件结构

Jvm(34),class文件结构----魔数,版本号

class文件格式:魔数和版本

Java 虚拟机原理Class 字节码二进制文件分析 一 ( 字节码文件附加信息 | 魔数 | 次版本号 | 主版本号 | 常量池个数 )