JVM通过移植接口在具体的平台和操作系统上实现。它上方是java的基础类库、扩展类库以及它们的API,利用java API编写的应用程序和小程序
可以在任何平台上运行而无需考虑底层平台,就是因为有java虚拟机实现了程序与操作系统的分离,从而实现了java的平台无关性。
每个java虚拟机都有两种机制:
(1)类装载子系统:装载具有适合名称的类或接口。
(2)执行引擎:负责执行包含在已装载的类或接口中的指令。
每个JVM都包含:
方法区、java堆、java栈、本地方法栈、指令计数器及其他隐含寄存器。
通俗的讲,JVM就像是“人贩子”,java就像是工厂的工人,而工厂相当于java运行的平台,java的基础类库、扩展类库以及它们的API相当于工人的大脑指挥系统,java API编写
的应用程序和小程序相当于工人的行为动作(吃饭、睡觉)。
java的平台无关性就像工人不管在哪个工厂都会吃饭、睡觉、干活一样,只是“人贩子”把工人卖给哪个工厂他就在哪个工厂吃饭、睡觉、干活,这些都是工人的大脑在指挥,与工厂没有任何关系。