Java虚拟机(Java Virtual Machine) 简称JVM,是Java程序运行所不可缺少的运行环境。
Java虚拟机是一个想象中的机器在实际的计算机上通过软件模拟来实现。就像大家需要装Linux的RedHat一样,也需要安装虚拟机,Java虚拟机有自己想象中的硬件如处理器、堆栈、寄存器等,还具有相应的指令系统。
Java语言的一个非常重要的特点就是与平台的无关性,而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行至少需要编译成不同的目标代码。而引入Java语言虚拟机后Java语言在不同平台上运行时不需要重新编译。Java语言使用模式Java虚拟机屏蔽了与具体平台相关的信息使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码)就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时把字节码解释成具体平台上的机器指令执行。
Java虚拟机由五个部分组成:一组指令集、一组寄存器、一个栈、一个无用单元收集堆(Garbage-collected-heap)、一个方法区域。这五部分是Java虚拟机的逻辑成分不依赖任何实现技术或组织方式但它们的功能必须在真实机器上以某种方式实现。