在编译原理中,一般将编译分为前端和后端。其中前端会对程序进行词法分析、语法分析、语义分析,而后生成一个中间表达形式(称为IR:Intermediate Representation)。后端再讲这个中间表达形式进行优化,最终生成目标机器码。前端
在Java中,javac以后生成的就是中间表达形式(.class)java
JVM在执行时,首先会逐条读取IR的指令来执行,这个过程就是解释执行的过程。当某一方法调用次数达到即时编译定义的阈值时,就会触发即时编译,这时即时编译器会将IR进行优化,并生成这个方法的机器码,后面再调用这个方法,就会直接调用机器码执行,这个就是编译执行的过程。后端
能够经过java -XX:+PrintFlagsFinal打印出全部参数的默认值缓存