JVM(Java Virtual Machine), 即JAVA虚拟机,是一种计算设备的规范,是一个虚构出来的计算机,通过在实际的计算机上仿真模拟计算机功能来实现的。
JVM是实现JAVA语言平台无关性的关键。一般高级语言如果要在不同的平台上运行,就必须编译成不同平台的目标代码。但JAVA语言不一样,它是利用JVM来屏蔽平台相关性,使得JAVA语言只需编译成JAVA字节码(JVM的目标代码),就可以在不同的平台上不加修改的运行。JVM在执行字节码时,把字节码解释成具体平台上的机器指令执行,这就是JAVA实现“一次编译,到处运行”的原因。
当然,不同平台的JVM(JDK中)是不同的,但这并不是开发人员需要关心的内容。Oracle会提供不同的平台上的JVM实现,只需安装即可。对于开发人员来说,JAVA编程语言是平台无关的。
JVM规格
JVM运行原理
JVM是java的核心和基础,在java编译器和os平台之间的虚拟处理器。它是一种基于下层的操作系统和硬件平台并利用软件方法来实现的抽象的计算机,可以在上面执行java的字节码程序。
Java编译器只需面向JVM,生成JVM能理解的代码和字节码文件。Java源文件经编译器,编译成字节码程序,通过JVM将每一条字节码翻译成不同平台的机器码运行。
JVM是怎么执行Class文件的呢?
1. 加载.class文件
2. 管理并分配内存
3. 执行垃圾收集
JRE(Java Runtime Environment) Java程序的运行环境。
JVM是JAVA程序运行的容器,同时也是操作系统的一个进程。它有自己的声明周期,也有自己的代码和数据空间。
JVM在整个JDK的最底层,负责与操作系统进行交互,用来屏蔽操作系统环境。
操作系统装入JVM,是通过JDK中的java.exe来完成,通过下面的4个步骤:
1. 创建JVM,装在环境和配置
2. 装载JVM.dll
3. 初始化JVM.dll并挂接到JNI实例(JNI调用接口)
4. 调用JNIEnv实例装载并处理class类。