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

 

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

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

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

 

class文件版本号如下图

 

 

 

 

https://blog.csdn.net/qq_36028303/article/details/80481340

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐