解释执行和编译执行都存在 大家都知道Java是先编译好为字节码,然后放到JVM上去运行的,在运行时,通过 Java虚拟机(JVM)内嵌的解释器将字节码转换成为最终的机器码。 在运行时期,目前主流的JVM 都是混合模式(-Xmixed),即解释运行 和编译运行配合使用。以 Oracle JDK提供的HotSpot虚拟机为例,在HotSpot虚拟机中,提供了两种编译模式:解释执行 和 即时编译(JIT,Just-In-Time)。解释执行即逐条翻译字节码为可运行的机器码,而即时编译则以方法为单位将字节码翻译成机器码(上述提到的“编译执行”)。前者的优势在于不用等待,后者则在实际运行当中效率更高。