Hacker News 中文摘要

RSS订阅

Java 26 正式发布 -- Java 26 is here

文章摘要

Java 26正式发布,虽然新增功能较少,但为未来重大更新(如Project Valhalla)奠定了基础。文章介绍了Java 26的各项新特性,并与Java 25进行对比,帮助开发者快速掌握使用方法。

文章总结

Java 26正式发布,为未来奠定坚实基础

2026年3月17日,Java 26如约而至。相比前几个版本,这次更新规模虽小但意义重大——它正在为即将发布的重大功能做准备,特别是为Project Valhalla的首批JEP(JDK增强提案)铺路。

新特性亮点

HotSpot虚拟机方面带来两大改进: 1. JEP 516:支持任意垃圾收集器的AOT对象缓存 - 通过采用GC无关的缓存格式(用逻辑索引替代内存地址),解决了Java 24引入的AOT缓存与ZGC等收集器不兼容的问题 - 显著提升Web服务器等需要快速响应的应用的启动性能

  1. JEP 522:G1垃圾收集器优化
  • 通过引入双卡表机制减少线程同步
  • 在频繁修改对象引用的应用中可提升5-15%吞吐量
  • 内存占用仅为Java 20之前的八分之一

核心库方面: - JEP 517为HTTP客户端API添加HTTP/3支持 - 支持四种协议协商策略,兼容现有HTTP版本 - 目前约三分之一网站已支持HTTP/3

功能预览更新

多项功能进入新阶段预览: 1. JEP 524:加密对象PEM编解码(第二次预览) - 新增对密钥对和PKCS8编码密钥的支持 - 简化了加密私钥信息的异常处理

  1. JEP 525:结构化并发(第六次预览)
  • 新增超时处理方法
  • 优化了Joiner接口的返回类型
  1. JEP 526:延迟常量(第二次预览)
  • 从"稳定值"更名为更贴切的"延迟常量"
  • 移除低阶API,聚焦核心使用场景
  1. JEP 530:模式匹配中的原生类型(第四次预览)
  • 加强switch语句中的模式支配检查
  • 支持boolean等更多原生类型

废弃与移除

  1. JEP 500:强化final字段语义
  • 开始警告通过反射修改final字段的操作
  • 为未来完全禁止此类操作做准备
  • 序列化等特殊场景可通过命令行参数豁免
  1. JEP 504:移除Applet API
  • 这个曾让Java声名鹊起的浏览器插件技术
  • 随着现代浏览器放弃支持而终遭淘汰

技术前瞻

特别值得关注的是JEP 529向量API(第十一次孵化): - 继续保持孵化状态 - 为Valhalla项目特性做准备 - 在x64和AArch64架构上能带来显著性能提升

总结

Java 26虽然功能集相对精简,但通过性能优化、协议支持和语义强化,为后续重大更新奠定了坚实基础。开发者现在就可以体验这些改进,为未来的Java开发做好准备。

(注:本文保留了约30%的技术细节,删减了重复的代码示例和过细的实现原理说明,聚焦核心变更点和用户价值)

评论总结

以下是评论内容的总结,平衡呈现不同观点并保留关键引用:

对Java的批评

  • Android与Java关系问题:用户质疑Google对Java的支持不足,以及Android版本滞后的原因(评论4:"When can we expect 26 on Android? Is it because Kotlin is primary?")
  • 遗留问题:对Applet API等过时功能的负面评价(评论3:"Java plugins especially on Linux were awful")
  • 文化僵化:批评Java社区固守传统(评论7:"the drawback with Java will always be the CULTURE")

对Java的肯定

  • 现代化改进:用户赞赏Java新增的功能如密封接口和虚拟线程(评论6:"we now have union types in java";评论12:"It's now what many would call a 'modern' language")
  • 技术实力:认为JVM团队能力出色(评论7:"the people that work on Java & the JVM are very smart")

其他观点

  • 版本滞后:部分用户仍停留在旧版本(评论10:"I'll never be able to escape 8")
  • 学习体验:有人回忆学习Java的痛苦经历(评论14:"Took the entire fun out of coding")
  • 跨语言影响:疑问Java变更对Clojure等JVM语言的影响(评论13:"Do changes to Java itself impact e.g. Clojure?")

关键引用保留: 1. 现代化改进(评论6/12): - "we now have union types in java" - "It's now what many would call a 'modern' language" 2. 文化批评(评论7): - "the drawback with Java will always be the CULTURE" - "consider them heretics for not embracing religion of OOP"