由Java语言编写的程序需要以过编译生成一种与平台无关的字节码(也就是*.class)文件。当然,这种字节码不是可执行性的,必须使用Java解释器来解释执行。
Java语言里负责解释执行字节码文件的是Java虚拟机,即JVM(Java Virtual Machine)。JVM是可运行Java字节码文件的虚拟计算机。所有平台上的JVM向编译器提供相同的编程接口,而编译器只需要面向虚拟机,生成虚拟机能理解的代码,然后由虚拟机来解释执行。
JVM是一个抽象的计算机,和实际的计算机一样,它具有指令集使用不同的存储区域。它负责执行指令,还要管理数据、内存和寄存器。