JVM 是規範,HotSpot 是實現。 兩者關係類似「接口與實現類」、「標準文檔與具體產品」。
| 維度 | JVM (Java Virtual Machine) | HotSpot VM |
|---|---|---|
| 本質 | 抽象規範,定義了指令集、類文件格式、內存模型、線程模型等 | Oracle(原 Sun)開發的具體 JVM 實現,C++ 編寫 |
| 地位 | Java 跨平台基石,「Write Once, Run Anywhere」的理論基礎 | JDK/OpenJDK 默認、最廣泛使用的生產級 JVM |
| 功能範圍 | 規定「做什麼」:加載類、執行字節碼、管理內存、線程同步等 | 決定「怎麼做」:JIT 編譯、垃圾收集算法、鎖優化、逃逸分析等 |
| 其他實現 | JRockit (Oracle)、J9 (IBM/Eclipse)、Zing (Azul)、GraalVM、Maxine VM 等 | 僅是眾多實現之一,但事實標準 |
| 版本演進 | 隨 Java 版本更新(JVMS 8, 11, 17, 21...) | 隨 JDK 發布更新,如 JDK 21 對應 HotSpot 21 |
-Xms, -Xmx, -XX:+UseG1GC, -XX:CompileThreshold 等)是高級 Java 工程師必備技能。JVM 定義了「Java 程序如何運行」的標準契約,HotSpot 是目前生態中最成熟、性能最強、應用最廣的契約履行者。二者關係清晰:規範統一生態,實現驅動性能。