一个class文件被加载到JVM内存后,首先要经过字节码验证,验证通过,再确定哪些代码是解释执行的,哪些代码是即时编译执行的(即时编译:Just In Time 简写JIT);
1.字节码验证:
检查class文件的把呢不能和jvm版本是否兼容
检查代码是否会破坏系统完整性
检查代码是否有栈溢出的情况
检查当前代码参数类型是否正确
...
...
2.解释执行:
jvm将class字节码文件解释成计算机可以执行的代码
如果所有代码都是这样执行的话,效率会比较慢
3.JIT即时编译:
即时编译是jvm执行java代码的一种方式,jvm可以使用JIT把java中的热点代码直接编译成计算机可以运行的代码
以后要调用这个热点代码时候,就可以直接用编译好的代码让计算机直接运行,可以执行运行效率
欢迎评论~