Skip to content

主流 JVM 虚拟机介绍

为什么需要了解各种 JVM 实现

JVM 是一份规范,但这份规范有不同的实现。每个实现都有自己的设计目标、适用场景和技术特点。

你可能在生产环境中用的是 Oracle JDK(内置 HotSpot),但 IBM 的 WebSphere 用的是 J9,Android 用的是 Dalvik,未来的趋势可能是 GraalVM。了解这些实现的差异,能帮助你:

  • 选型决策:根据场景选择合适的 JVM
  • 理解原理:不同实现对比能让你更深刻地理解 JVM 的核心概念
  • 排查问题:知道 JVM 的「出身」,能更快定位问题来源

JVM 实现全景图

┌─────────────────────────────────────────────────────────────┐
│                      JVM 规范(规范)                          │
│           《Java Virtual Machine Specification》              │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  SUN Classic / Exact VM    1996-2002    最早但已淘汰        │
│           ↓                                                │
│       HotSpot VM            1999-至今    Oracle JDK / OpenJDK │
│           ↓                                                │
│  JRockit VM / IBM J9 VM    2000s-今     企业级 JVM         │
│                                                             │
│  GraalVM              2018-至今    新一代高性能 VM          │
│  Dalvik VM            2008-2017    Android 专属             │
│  其他 JVM             各有特色                             │
│                                                             │
└─────────────────────────────────────────────────────────────┘

章节导航

文章内容概要
SUN Classic/Exact VMJava 最古老的两款虚拟机,现代 JVM 的奠基者
HotSpot VM当之无愧的主流,JDK 默认内置,深入讲解其核心特性
JRockit/IBM J9 VM两款企业级 JVM,各自在高端领域有独门绝技
KVM/CDC/CLDC/Azul/Liquid VM移动/嵌入式/JIT 黑科技,了解 JVM 的多样性
Apache Harmony/Microsoft/TaobaoJVM国产力量和历史过客
Dalvik/GraalVMAndroid 的选择 & JVM 的未来

建议按顺序阅读:先从 HotSpot 入手了解主流,再看其他实现做对比和扩展。

一点说明

本系列文档讨论的 JVM 行为和调优参数,如无特殊说明,均以 HotSpot 为准。HotSpot 是目前使用最广泛的 JVM,理解 HotSpot 就理解了 JVM 的大部分内容。

基于 VitePress 构建