1.Class
文件的标识 - 魔数(magic number
)
Class
文件开头的四个字节的无符号整数称为魔数(Magic Number
)。- 魔数是
Class
文件的标识。值是固定的,为0xCAFEBABE
- 如果一个
Class
文件的头四个字节不是0xCAFEBABE
,虚拟机在进行文件校验的时候会报错。使用魔数而不是扩展名来识别Class
文件,主要是基于安全方面的考虑,因为文件扩展名可以随意更改。
2.Class
文件的版本号
- 紧跟着魔数的
4
个字节就是Class
文件的版本号。第5
和第6
个字节所代表的含义是编译的副版本号,第7
和第8
个字节代表的是编译的主版本号。Class
文件的版本号有主版本号.副版本号
组成。
- 高版本的虚拟机可以执行低版本的编译器生成的
Class
文件,但是低版本的虚拟机不能执行高版本的编译成生成的Class
文件。(向下兼容)
更多JVM文章请访问我的JVM专栏:
https://blog.csdn.net/u011069294/category_10113093.html