Java是解释执行(乄)
“Java 是解释执行”这句话只能说半对(乄)。
【解析】
Java 源代码通过 Javac 编译成为字节码(bytecode),然后在运行时,通过 JVM内嵌的解释器将字节码转换成为最终的机器码。
但是常见的 JVM,如 Oracle JDK 提供的 Hotspot JVM,都提供了 JIT(Just-In-Time)编译器,也就是动态编译器,JIT 能够在运行时将热点代码编译成机器码,这种情况下部分热点代码就属于编译执行,而不是解释执行了。
所以在运行时,JVM 会通过类加载器(Class-Loader)加载字节码,解释或者编译执行。
【JVM相关参数】
-Xmixed: 默认为解释和编译混合模式,启动速度较快,对热点代码实行检测和编译。
-Xcomp: 关闭解释器,纯编译模式,执行很快,启动很慢。
-Xint: 只使用解释模式,启动很快,执行稍慢。
【测试】
以下是VM options三个参数对于n个循环的简单测试情况:
1)-Xmixed 混合模式
2)纯编译模式
3) 解释模式
召唤妲己:
你很有能力,幸福密码来破译;你很有张力,浏览开心与如意;你很有耐力,删除烦恼与失意;你很有实力,快乐福气你点击;祝程序员朋友们,运行幸福程序,愿你们永远有魄力,散发耀眼魅力!