JVM 是编译器还是解释器?

回答·5
最热
最新
  • 首先 JAVA 虚拟机规范中并没有强制规定必须用编译器还是必须用解释器,其具体使用编译器还是解释器,要因具体的虚拟机论定。以 hotspot 为例,他的实现是混合的,热点代码编译执行,其它代码解释执行。热点代码主要指多次被调用到的代码,循环中的循环体。
  • 都可以 -Xmixed 是混合模式 -Xint 是解释模式 -Xcomp 是编译模式 hotspot 默认是混合的,通过热点代码检测,来进行编译
  • 默认使用混合,热点代码使用编译
  • 解析器,JAVA 源码在运行前已经编译过
  • 都是。既可以编制执行,也可以解释执行,还可以是混合模式,可以通过 jvm 启动参数来设置。默认是混合模式