HotSpot

背景 OpenJDK 发行版里默认的 Java 虚拟机实现是 HotSpot(C++)。你安装的 java 命令、容器里的 JDK 镜像,除非明确换用 OpenJ9 或 GraalVM Native Image,否则跑的就是 HotSpot。 Java 领域还有哪些 JVM,见 Java 虚拟机。 HotSpot 是什么 HotSpot 得名于 热点探测(hot spot detection):大部分时间只执行少量代码,JIT 优先编译这些热点方法。内置 解释器、C1 与 C2 两个 JIT 编译器,默认通过 分层编译 在启动速度与峰值性能之间折中。 对比 HotSpot Eclipse OpenJ9 GraalVM Native Image 典型形态 OpenJDK 默认 java IBM Semeru native-image 产物 JIT C1 + C2 自有 JIT 构建期 AOT,无运行时 JIT 常用诊断 jcmd、JFR、Attach 自有工具 与传统 JVM 排障不同 历史 HotSpot 的技术 lineage 来自 Self / Strongtalk 一脉的动态编译与热点探测。Longview Technologies(对外也称 Animorphic)1994 年成立,1997 年 2 月被 Sun 收购;收购后 Sun 在其 VM 技术上为 Java 编写更强的 JIT(C2 等),因运行时持续探测并优化热点代码而得名 HotSpot。 ...

Created 31316-05-31 · Updated 16166-07-16 · 3 min · 507 words · -

OpenJDK JDK 发行版:Temurin、Corretto、Dragonwell

OpenJDK 与「发行版」 OpenJDK 是 Java 平台的开源参考实现(源码项目)。日常 java -version 看到的并不是「裸 OpenJDK 源码」,而是各厂商/社区基于该源码(或与之同步的分支)构建、测试、打包后的 JDK 发行版(distribution)。 多数发行版默认捆绑 HotSpot 虚拟机,因此 Temurin、Corretto、Dragonwell 之间换的是供应商、构建渠道与支持策略,不是换一套 JVM 实现。JVM 实现层选型见 Java 虚拟机。 OpenJDK 源码(openjdk/jdk) │ ├── 各发行版构建 + TCK / 内部 QA │ ▼ Temurin / Corretto / Dragonwell / Oracle JDK … │ └── 默认内含 HotSpot(Semeru 等除外,见下文) 常见发行版对照 发行版 维护方 许可 / 费用 典型特点 Eclipse Temurin Eclipse Adoptium 免费(GPLv2 + Classpath) AdoptOpenJDK 继任;通过 Java SE TCK;无特殊理由时的默认推荐 Amazon Corretto Amazon 免费 AWS 生态常用;长期支持声明;Corretto 补丁分支 Dragonwell(含 Alibaba Dragonwell) 阿里云 免费 面向国内与大促场景优化;部分版本含 Wisp 协程、增强 GC 等 Alibaba 扩展 Oracle JDK Oracle 免费(个人/开发等,见 Oracle 许可 FAQ)/ 商业订阅 Oracle 官方构建;与 OpenJDK 功能同步策略见 Oracle 文档 Microsoft Build of OpenJDK Microsoft 免费 Azure / Windows / GitHub Actions 场景常见 Red Hat Build of OpenJDK Red Hat 免费 / 随 RHEL 订阅支持 OpenShift、RHEL 企业环境 Azul Platform Core(Zulu 等) Azul 免费构建 + 商业支持 多版本、多平台;企业 SLA IBM Semeru IBM 免费 / 商业 OpenJ9 虚拟机,不是 HotSpot;见 jvm.md Linux 发行版自带的 openjdk-*-jdk(Debian/Ubuntu/Arch 包)也是基于 OpenJDK 源码的构建,可视为「 distro 维护的发行版」,更新节奏跟随各发行版仓库。 ...

Created 21216-06-21 · Updated 21216-06-21 · 2 min · 346 words · -

JDK 26 相对 JDK 25 的变化

JDK 26 于 2026 年 3 月 17 日 GA,是紧接 JDK 25 LTS 之后的短期特性版本(非 LTS)。OpenJDK 为其提供约六个月的支持,至 2026 年 9 月 JDK 27 发布为止。生产环境仍以 JDK 25 LTS 为主;JDK 26 适合尝鲜新特性或验证升级路径。 参考:JDK 26 项目页、JDK 25 项目页、JDK 26 Release Notes。 版本概览 项目 JDK 25 JDK 26 发布日期 2025-09-16 2026-03-17 LTS 是 否 JSR JSR 400 JSR 401 Class File 版本 69.0 70.0 Unicode 16.0.0 17.0.0 官方 JEP 数量 18 10 JDK 26 新增或正式交付的 JEP JEP 500:Prepare to Make Final Mean Final 对通过深层反射修改 final 字段的行为发出警告,为后续在 JVM 层面严格禁止此类修改做准备。JDK 26 尚未完全封死,但应开始排查依赖 setAccessible 篡改 final 的代码。 ...

Created 19196-06-19 · Updated 19196-06-19 · 3 min · 446 words · -