一、JVM
JVM(Java Virtual Machine) 也成为 JAVA 虚拟机。
JVM 是通过在实际计算机之上虚拟出来的一台计算机,JVM 有自己的字节码指令集和内存管理
1.1、JVM 是一种规范
JVM 是一种规范,定义了 JVM 虚拟机实现的标准。
常见的JVM 实现
- Hotspot
目前使用最多,也是 open jdk 对应 JVM 实现 - TaobaoVM
淘宝针对 Hotspot 的定制版 - J9
IBM 自己实现的JVM虚拟机 - LiquidVM
针对硬件的虚拟机,因为没有操作系统,直接操作硬件,运行效率高 - zing
属于 zual 公司,商业JVM实现,收费版。垃圾回收快能在1ms内完成。1.2、JVM 与 class 文件
JVM 上面运行的是 class 格式的文件,或者流。
换句话说,JVM 与语言无关,只要能将编程语言编译成符合 JVM 实现 class 文件格式,就能够直接运行在 JVM 上。
目前除了 Java 之外,Kotlin、Groovy、JRuby、Jython、Scala 都提供了将代码编译成 能 JVM 虚拟机能识别的字节码的编译器。
1.3、Java 编码到 JVM 执行过程
JVM 与语言无关,只要能够编译成能够被识别的字节码即可在 JVM 中执行。
这里以 Java 语言为例。