在編譯原理中,一般將編譯分爲前端和後端。其中前端會對程序進行詞法分析、語法分析、語義分析,而後生成一箇中間表達形式(稱爲IR:Intermediate Representation)。後端再講這個中間表達形式進行優化,最終生成目標機器碼。前端
在Java中,javac以後生成的就是中間表達形式(.class)java
JVM在執行時,首先會逐條讀取IR的指令來執行,這個過程就是解釋執行的過程。當某一方法調用次數達到即時編譯定義的閾值時,就會觸發即時編譯,這時即時編譯器會將IR進行優化,並生成這個方法的機器碼,後面再調用這個方法,就會直接調用機器碼執行,這個就是編譯執行的過程。後端
能夠經過java -XX:+PrintFlagsFinal打印出全部參數的默認值緩存