Java虚拟机(Java Virtual Machine,JVM)是一种用于执行Java字节码的虚拟机器。或者可以这样理解,JVM是Java程序运行的环境。
JVM是运行Java程序的核心,其最基本功能是将Java源代码编译成字节码,然后在JVM中解释执行字节码,生成本地机器码并直接运行。JVM的主要任务包括加载字节码、执行字节码、管理内存、垃圾回收、安全等等。
Java程序在运行时,通过Java编译器将源代码编译成Java字节码(.class文件),而不是机器码。Java虚拟机在执行的时候,将字节码文件转换为与当前硬件平台相关的机器码,然后再运行。
JVM的运行原理主要体现在内存管理,具体包括内存划分、内存的分配和释放,垃圾回收等等。传统的程序在执行时,分配一块内存然后执行程序,执行完毕后程序终止,所占用的内存也就释放掉了。而JVM则会为每个运行的Java程序分配一块内存,这块内存称之为Java堆,在Java中通过new关键字申请的内存,都是在Java堆中分配的。
JVM的出现极大地拓展了Java的应用范围,使得Java可以通过跨平台的方式在不同的电脑上运行。同时,JVM内部的垃圾回收机制和异常处理机制也让Java程序更加稳定和安全。