Java核心技术卷I基础知识(原书第9版)
上QQ阅读APP看书,第一时间看更新

1.2.6 体系结构中立

编译器生成一个体系结构中立的目标文件格式,这是一种编译过的代码,只要有Java运行时系统,就可以在许多处理器上运行。Java编译器通过生成与特定的计算机体系结构无关的字节码指令来实现这一特性。精心设计的字节码不仅可以很容易地在任何机器上解释执行,而且还可以迅速地翻译成本地机器的代码。

这并不是什么新的思路。40多年以前,Niklaus Wirth实现的原始Pascal以及UCSD Pascal系统都使用了这种技术。

当然,解释字节码肯定会比全速运行机器指令慢很多。所以说,这是不是一个好的思路还很难讲!然而,虚拟机有一个选项,可以将使用最频繁的字节码序列翻译成机器码,这一过程被称为即时编译。这一策略已经证明十分有效,致使微软的.NET平台也依赖于虚拟机。

虚拟机还有一些其他的优点。虚拟机可以检测指令序列的行为,以增强其安全性。有些程序还可以快速地生成字节码,并动态地增强所运行程序的处理能力。