JVM(java虚拟机)是一种用于计算机设备的规范,它用不同的软件或硬件来加以实现。编译虚拟机的指令集和编译微处理器的指令集很相似。java中的JVM包括了一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。现在,我们可以把JVM想像成一种可运行java代码的假象设备,只要根据JVM的规范将解释器移植到指定的计算机上,就能让我们编译的任何java代码能够在该系统上运行。JVM既然是我们想象中的设备,那么在实际计算机中就要通过软件来模拟实现。至于硬件的话,JVM里面有自己设定好的硬件,如处理器、堆栈、相应的指令系统等。当然这些硬件都是JVM自己假象好的。
java语言之所以能够跨平台,JVM的功劳可以说是至关重要的。一般的高级语言如果想在不同的平台上运行,那它至少需要编译成不同的目标代码。而在java中,引入了JVM后,java语言在不同的平台上运行时就不需要重新编译。因为JVM屏蔽了与具体平台相关的信息,使得java语言编译程序只需生成在JVM上运行的目标代码(字节码),就可以再多种平台上不加修饰地运行。JVM在执行字节码时,把字节码解释成具体平台上的机器指令执行。
转载于:https://blog.51cto.com/2356767/891323