JAVA 基础之 JIT
JIT,全程为 Just In Time Compiler ,即时编译器。这是针对解释型语言而言的,并且并非虚拟机的必须,是一种优化手段。
Java 的商用虚拟机 HotSpot 就有这样的技术手段,Java 虚拟机标准对 JIT 没有做出任何的规范,所以这个是虚拟机实现的自定义的优化技术。
HotSpot 虚拟机的执行引擎在执行 Java 代码是可以采用解释执行和编译执行两种方式的,如果是采用的编译执行方式,那么就会用到 JIT。
早期说 Java 是解释型的语言是没有任何问题的,而在拥有了 JIT 的 Java 虚拟机环境下,说 Java 是解释型的语言严格意义上已经不正确了。
HotSpot 中的编译器是 javac,他的工作是将源代码编译成字节码,这部分工作是完全独立的,不需要运行时参与,所以 Java 程序的编译是半独立实现的;有了字节码后,就由解释器来进行解释执行,这个是早期虚拟机的工作流程。后来,虚拟机会将执行频率高的方法或者语句通过 JIT 编译成本地机器码,提高了代码的执行效率。
以上为 JIT 在 Java 虚拟机中所处的地位以及工作的主要内容。
评论