Java到底是编译型语言还是解释型语言呢?
谈到这个问题,我cmd 敲了一下 java -version
D:\>java -version
java version "1.8.0_162"
Java(TM) SE Runtime Environment (build 1.8.0_162-b12)
Java HotSpot(TM) Client VM (build 25.162-b12, mixed mode)
从JVM信息中的mixed mode来看,更倾向于“Java是编译、解释混合型语言”这个答案。
众所周知,JVM既有解释器,又有JIT(即时编译器)。
JVM默认运行的时候,就是mixed mode混合模式,即混合使用解释器+热点代码编译。
有参数来修改JVM运行时使用解释执行还是编译执行还是混合执行,感兴趣的话可以简单测试一下三者的性能。
- -Xmixed 使用混合模式,开始时解释执行,启动速度较快,对热点代码实行检测和编译
- -Xint 使用解释模式,启动很快,执行稍慢
- -Xcomp 使用纯编译模式,执行很快,启动稍慢