【Java虚拟机】Java代码的运行

1. Java代码为何要在虚拟机中运行?

Java作为一种高级语言,语法复杂,抽象度高,如果直接通过硬件来执行很不现实,所以就引入了Java虚拟机;

2. 解释"一次编写,到处运行"

一旦Java代码被编译成Java字节码,便可以在不同平台上的Java虚拟机实现上运行。

3. 解释Java虚拟机是怎样运行Java字节码的?

以标准JDK中的HotSpot虚拟机为例

首先将class文件加载到虚拟机中(方法区)

然后将Java字节码(class文件)翻译成机器码给底层硬件执行

83407263.png

4. 具体解释一下翻译成机器码给底层硬件执行的过程

具体翻译过程有两种形式:

  • 解释执行,即逐条将字节码翻译成机器码并执行

  • 即时编译(Just-In-Time Compilation JIT),即一个方法中包含的所有字节码编译成机器码后再执行

前者的优势在于无需等待编译,后者的优势在于实际运行速度更快。HotSpot默认采用混合模式,它会先解释执行字节码,然后将其中反复执行的热点代码,以方法为单位进行即时编译

83355815.png

5. 简述你对Java虚拟机作用的理解(任意两点即可)

  • Java虚拟机将运行时内存区域划分为5个部分

  • 虚拟机提供了一个代码托管的环境,并且帮助我们处理代码中冗长而且容易出错的事务,如自动内存管理与垃圾回收

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容