通过字节码保证可移植性和安全性
尽管Java有许多功能强大的特性,但是如果没有字节码(byte code)这一特征,那么Java只不过是编程技术发展进程中的一个足印。字节码是Java语言的一个重要组成部分,它对程序员而言,几乎是透明的。所有的Java程序员都知道,Java编译器的输出不是能够直接由CPU执行的机器指令,而是一种经过高度优化的可移植的指令集合,这种指令集合称为字节码,它只能由Java虚拟机(Java Virtual Machine,JVM)执行。最初,JVM只是一个简单的字节码解释器,现在,JVM也将字节码的on-the-fly编译技术应用到可执行代码中。无论字节码的执行采用何种方式,它的优势对于Java的成功都是至关重要的。
字节码的第一个优势是可移植性。无论计算机使用何种类型的CPU(或操作系统),只要具有JVM,那么由Java程序编译而成的字节码就可以在其中执行。换而言之,只要为某个特定环境实现了JVM,那么每个Java程序都可以在该环境运行。没有必要为每个不同的环境创建都单独执行代码,因为同一种字节码可以在所有环境中运行。因此通过使用字节码,Java为程序员提供了“一次编写,随处运行”的能力。
字节码的第二个优势是安全性。由于字节码在JVM的控制下执行,因此JVM可以防止执行恶意操作的Java程序。保证主机安全的能力对于Java的成功是至关重要的,因为它允许创建Applet。由于Applet是可以通过Internet动态下载的小程序,因此避免Applet破坏主机的机制是非常必要的。字节码和JVM的结合,还保证了Applet的安全下载。可以说,如果没有字节码,那么Web可能根本无法达到今天的地位和影响。
|