java class文件魔数、版本号

时间:2022-10-30 17:19:24

每个class文件的前四个字节表示魔数,他的唯一作用是确定这个文件是否是一个能被虚拟机接受的class文件, 很多文件存储标准中都使用魔数来进行身份识别,比如图片格式,如gif、jpg等在文件中都存在魔数,使用魔数而不是扩展名来进行识别主要基于安全方面的考虑。因为扩展名可以随便改动。文件格式的制定者可以自有的选择魔数值。


紧接着魔数的4个字节后,第5个和第6个表示次版本号。第7、8表示主版本号。如下图

用16进制编辑器打开 可以看见前4个字节的16进制表示的是 0xCAFEBASE 表示魔数,0x00表示次版本号

0x32为主版本号 即为十进制的50 也就是说这个class文件可以被jdk1.6以上版本的虚拟机所执行。

java class文件魔数、版本号


class文件版本号如下图

java class文件魔数、版本号