Java 虚拟机是什么?
虚拟机这个词对于Java的开发者应该都知道,但是对于初学者对它还是了解较少。Java 虚拟机是Java语言的核心技术,是Java程序的运行环境,为了解决程序跨平台而生。
Java是跨平台的语言,Java虚拟机可以称为跨语言的平台, 应该好理解吧。它是如何实现跨平台的呢?我们在安装jdk(Java 集成开发工具,其中内嵌Java运行环境)时可以看到有很多对应不同系统的版本,针对不同的系统开发不同的 jdk 是 Java 语言能够跨平台的重点,编译后的Java字节码运行在虚拟机上,虚拟机将字节码指令翻译成对应的机器指令运行程序,不同的系统底层架构不同,使用的指令集也不尽相同,与系统对应的 jdk 可以将字节码指令翻译成自己能够执行的指令,所以相同的字节码在不同的系统上使用不同版本的 Java 虚拟机都可以正常运行了。因此 Java 程序可以一次编译到处运行。
Hotspot 虚拟机的架构模型
Java 虚拟机(Java 使用的虚拟机是 Hotspot 虚拟机)的架构模型如下图所示:
其主要分为三个部分,简单介绍下每个部分主要负责的功能:
- 类加载器子系统:负责将字节码文件加载到内存中,也就是虚拟机种的运行时数据区。
- 运行时数据区: 程序运行时的所有数据存放的内存区域。
- 字节码执行引擎: 将字节码执行翻译成机器指令最终在物理机上运行。
|