
上QQ阅读APP看书,第一时间看更新
1.4.2 Java虚拟机
Java程序是如何做到“一次编译,到处运行”呢?这正是通过JVM来实现的。JVM可以被理解成一个用软件模拟的、以字节码为机器指令的虚拟计算机,它屏蔽了Java程序底层运行平台(操作系统和硬件)的差别,在执行字节码时,把字节码解释成适合于不同具体平台上的机器指令并将机器指令交给本地的操作系统来运行。
在运行Java程序时,首先会启动JVM,然后由它来负责解释执行Java的字节码,并且Java字节码也只能运行于JVM之上。只要在不同的计算机上安装了针对特定具体平台的JVM,Java程序就可以运行,而不用考虑当前具体的硬件平台及操作系统环境,也不用考虑字节码文件是在何种平台上生成的。JVM把这种不同软硬件平台的具体差别隐藏起来,从而实现了真正的二进制代码级的跨平台移植,Java的跨平台特性正是通过在JVM中运行Java程序实现的。
Java程序通过JVM可以实现跨平台特性,但JVM是不跨平台的。也就是说,不同操作系统之上的JVM是不同的,如Windows平台之上的JVM与UNIX平台上的JVM是不同的。