background image

在 Java 平台的结构中, 可以看出,Java 虚拟机(JVM) 处在核心的位置,是程序与底

层操作系统和硬件无关的关键。它的下方是移植接口,移植接口由两部分组成:适配器
和 Java 操作系统, 其中依赖于平台的部分称为适配器;JVM 通过移植接口在具体的平台
和操作系统上实现;在 JVM 的上方是 Java 的基本类库和扩展类库以及它们的 API, 利
用 Java API 编写的应用程序(application) 和小程序(Java applet) 可以在任何 Java 平
台上运行而无需考虑底层平台, 就是因为有 Java 虚拟机(JVM)实现了程序与操作系统的
分离,从而实现了 Java 的平台无关性。 

那么到底什么是 Java 虚拟机(JVM)呢?通常我们谈论 JVM 时,我们的意思可能是: 

1.

对 JVM

 

规范的的比较抽象的说明;

2.

对 JVM

 

的具体实现;

3.

在程序运行期间所生成的一个 JVM

 

实例。

对 JVM 规范的的抽象说明是一些概念的集合,它们已经在书《The Java Virtual 

Machine Specification》(《Java 虚拟机规范》)中被详细地描述了;对 JVM 的具体
实现要么是软件,要么是软件和硬件的组合,它已经被许多生产厂商所实现,并存在于
多种平台之上;运行 Java 程序的任务由 JVM 的运行期实例单个承担。在本文中我们所
讨论的 Java 虚拟机(JVM)主要针对第三种情况而言。它可以被看成一个想象中的机器,
在实际的计算机上通过软件模拟来实现,有自己想象中的硬件,如处理器、堆栈、寄存
器等,还有自己相应的指令系统。

JVM 在它的生存周期中有一个明确的任务,那就是运行 Java 程序,因此当 Java 程

序启动的时候,就产生 JVM 的一个实例;当程序运行结束的时候,该实例也跟着消失了。
下面我们从 JVM 的体系结构和它的运行过程这两个方面来对它进行比较深入的研究。 

2  Java 虚拟机的体系结构