一、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 语言为例。

image.png

二、JVM 整体大图

点击查看【processon】