Java代码执行流程
-
解释器:保证响应时间,对字节码指令逐行解释执行
-
JIT编译器:字节码指令中有一些指令是要反复执行的,我们称之为热点代码,JIT编译器可以将热点代码再次编译成机器指令并缓存起来放到方法区中,下次可以直接调用
-
Java编译器编译过程中,任何一个节点执行失败就会造成编译失败。
-
虽然各个平台的Java虚拟机内部实现细节不尽相同,但是它们共同执行的字节码内容却是一样的。
-
JVM的主要任务就是负责将字节码装载到其内部,解释/编译为对应平台,上的机器指令(即:汇编语言)执行。
-
Java虚拟机使用类加载器(Class Loader) 装载class文件。
-
类加载完成之后,会进行字节码校验,字节码校验通过之后JVM 解释器会把字节码翻译成机器码(即:汇编语言)交由操作系统执行。
器码(即:汇编语言)交由操作系统执行。 -
但不是所有代码都是解释执行的,JVM对此做了优化。比如,以Hotspot虚拟机来说,它本身提供了JIT (Just In Time)