HotSpot 是什么?
一句话结论
HotSpot 是 Oracle JDK 自带的、目前最主流的 Java 虚拟机实现,也就是我们平时说的「JVM」的官方真身。
一、它到底是干嘛的?
你写的 .java 代码编译成 .class 字节码后,就是靠 HotSpot 来执行的。它的核心工作包括:
- 字节码解释/执行 :把
.class翻译成机器指令,让CPU能跑 - 即时编译(JIT):把热点代码编译成机器码,大幅提升性能
- 垃圾回收(GC):管理堆内存,自动回收垃圾对象
- 内存管理:分配/回收内存,管理虚拟机栈、堆、方法区等
- 线程管理:把 Java 线程映射到操作系统内核线程
二、它为什么叫「HotSpot」?
因为它最核心的技术是热点探测(Hot Spot Detection):
- 运行时统计哪些代码被执行次数多(热点代码)
- 对这些热点代码进行即时编译(JIT),把字节码直接编译成本地机器码
- 后续调用直接跑机器码,不用再解释,性能大幅提升
→ 所以叫 HotSpot(热点)虚拟机
三、它和 JDK / JVM 的关系
- JVM :Java 虚拟机的规范(定义了一套标准,比如内存结构、字节码执行规则)
- HotSpot :JVM 规范的具体实现(Oracle 提供的官方实现)
- JDK:包含 HotSpot + 核心类库 + 开发工具(javac、jar等)
一句话:
HotSpot 就是我们日常使用的 JVM。
四、一句话总结
HotSpot 是 Oracle 提供的主流 Java 虚拟机实现,是 JDK 默认自带的 JVM。
它的核心特性包括:解释器+即时编译(JIT)混合执行、自动垃圾回收、线程管理等。
其中"热点探测"和即时编译技术,是它性能优秀的关键。
五、补充:HotSpot 的版本
- 早期叫 Sun HotSpot,后来被 Oracle 收购,现在叫 Oracle HotSpot
- OpenJDK 里也有开源版的 HotSpot,和 Oracle JDK 里的核心实现基本一致