魔数与Class文件的版本
魔数:每个Class文件的头四个字节称为魔数,它的唯一作用就是确定这个文件是否为一个能被虚拟机接受的Class文件,很多存储文件都有这个魔数,不以扩展名作为标识的原因是因为扩展名可以随意更改。
魔数值可以被文件格式的制定者自由选择,只要这个魔术值没有被广泛的应用同时又不会引起混淆即可。而Class文件的魔数为CAFEBABE。
版本:紧接着魔数的四个字节存储的是Class文件的版本号,第5和第6字节是次版本号,第7和第8是主版本号。Java的版本号是从45开始的,jdk1.1之后的大版本发布主版本号向上加1(jdk1.0~1.1使用45.0~45.3),高版本jdk能向下兼容,但是不能运行以后版本的Class文件。