出现原因
通常javac将程序源代码编译,转换成java字节码,JVM通过解释字节码将其翻译成对应的机器指令,逐条读入,逐条解释翻译。
很显然,经过解释执行,其执行速度必然会比可执行的二进制字节码程序慢。
为了提高执行速度,引入了JIT技术。
工作原理
JIT是just in time,是运行时编译,能够加速java程序的执行速度。
JIT编译时,当JVM.class文件解释后,将其发给JIT编译器。JIT编译器将热点代码的字节码编译成本机机器代码。
热点代码:高频率调用的方法和代码块
在运行时JIT会把翻译过的机器码保存起来,类似于缓存技术,运行时再遇到这类代码直接可以执行,而不是先解释后执行。