- Java程序设计基础(第6版)
- 陈国君主编
- 591字
- 2021-03-28 02:50:52
1.4 Java虚拟机
大部分的计算机语言程序都必须先经过编译(compile)或解释(interpret)的操作后,才能在计算机上运行,然而,Java程序(.java文件)却比较特殊,它必须先经过编译的过程,然后再利用解释的方式来运行。通过编译器(compiler),Java程序会被转换成与平台无关(platform-independent)的机器码,Java称之为“字节码”(byte-codes),字节码文件的扩展名为.class。通过Java的解释器(interpreter)便可解释并运行Java的字节码。图1.1说明了Java程序的执行过程。

图1.1 Java程序的运行过程:先编译,后解释
字节码是Java虚拟机(Java Virtual Machine, JVM)的指令组,和CPU上的微指令码很相像。Java程序编译成字节码后文件尺寸较小,便于网络传输。
字节码最大的好处是可跨平台运行,即Java的字节码可以编写一次,到处运行。用户使用任何一种Java编译器将Java源程序(.java)编译成字节码文件(.class)后,无论使用哪种操作系统,都可以在含有JVM的平台上运行。这种跨越平台的特性也是让Java语言急速普及的原因之一。
任何一种可以运行Java字节码的软件均可被看成Java的“虚拟机”(JVM),如浏览器与Java的开发工具等皆可被视为一部JVM。很自然地,可以把Java的字节码看成JVM上所运行的机器码(machine code),即JVM中的解释器负责将字节码解释成本地的机器码。所以从底层上看,JVM就是以Java字节码为指令组的“软CPU”。可以说,JVM是可运行Java字节码的假想计算机。它的作用类似于Windows操作系统,只不过在Windows上运行的是.exe文件,而在JVM上运行的是Java字节码文件,也就是扩展名为.class的文件。JVM其实就是一个字节码解释器。