一。JAVA虚拟机(Java Virtual Machine)
java虚拟机(JVM)是在一台计算机上用软件模拟也可以用硬件来实现的假想的计算机。它定义了指令集(相当于中央算是器cpu)、寄存器集、类文件结构栈、垃圾收集堆、内存区域。
首先,JAVA编译器在获取JAVA应用程序的源代码后,把它编译成符合JAVA虚拟机规范的字节码(byte code)的class 文件,class文件是JVM中可执行文件的格式。JAVA编译器针对JAVA虚拟机产生class文件,JAVA虚拟规范为不同的硬件平台提供了不同的编译代码规范,该规范使JAVA软件独立于平台。然后,JAVA解释器负责将JAVA字节码文件解释运行,边解释边运行,这样,运行速度受到一定影响。为了提高运行速度,JAVA提供了另一种解释运行方法JIT(Just In Time),可以一次解释完,再运行特定平台上的机器码,这样就实现了跨平台、可移植的功能。
在JAVA的运行环境中,每个JAVA解释器,不管它是JAVA开发工具,还是可运行applets的WEB浏览器,都可执行JAVA虚拟机。字节码的运行要经过下面三个步骤:
(1)加载代码:由Class Loader完成。
(2)校验代码:由Bytecode Verifier 完成。
(3)执行代码:由Runtime Interpreter完成。