如何下载Java 26 的下载入口:

发布时间:2026/6/29 23:48:02
如何下载Java 26 的下载入口: 版本定位这次得说明下Java 26 并是一个长期支持的大版本上一个长期支持的版本是Java 25如下表所示版本发布日期优先支持期限延长支持期限8 (LTS)03/201403/202212/20309 - 10 (non-LTS)09/201709/2018不支持11 (LTS)09/201809/202301/203212 - 16 (non-LTS)03/201909/2021不支持17 (LTS)09/202109/202609/202918 - 20 (non-LTS)03/202209/2023不支持21 (LTS)09/202309/202809/203122 (non-LTS)03/202409/2024不支持23 (non-LTS)09/202403/2025不支持24 (non-LTS)03/202509/2025不支持25 (LTS)09/202509/203009/203326 (non-LTS)03/202609/2026不支持27 (non-LTS)09/202603/2027不支持Java 版本分为LTSLong-Term Support长期支持版和Non-LTS非长期支持版它们的主要区别如下对比项LTS 版本长期支持Non-LTS 版本非长期支持发布周期每2 年一次每6 个月发布一次支持时长官方长期支持8 年仅支持6 个月适用场景生产环境、企业级项目、长期维护的系统个人学习、实验性项目、尝鲜新特性稳定性更稳定企业级可用新特性多但可能不稳定安全性持续提供安全更新和 bug 修复仅在生命周期内提供短期修复新特性主要以稳定性和性能优化为主包含最新特性但可能在下个版本修改或移除所以用不用 Java 26 分场景来看生产环境追求稳的团队还是优先用Java 21和Java 25。想跟上 Java 演进方向的人Java 26 很值得看因为里面不少东西明显是在给下一个大版本试水。这也是 Java 半年发版最有价值的地方它不一定每次都让你全面升级但它一直在替未来铺路。Java 26 新特性JDK 26 带来了 10 个重大升级编号特性名称中文解释备注500Prepare to Make Final Mean Final准备让final真正变成final504Remove the Applet API移除 Applet API516Ahead-of-Time Object Caching with Any GC任意 GC 的 AOT 对象缓存517HTTP/3 for the HTTP Client APIHTTP Client 支持 HTTP/3522G1 GC: Improve Throughput by Reducing SynchronizationG1 通过减少同步提升吞吐量524PEM Encodings of Cryptographic Objects加密对象的 PEM 编码第 2 次预览525Structured Concurrency结构化并发第 6 次预览526Lazy Constants懒加载常量第 2 次预览529Vector API向量 API第 11 次孵化530Primitive Types in Patterns, instanceof, and switch模式匹配支持更多原始类型第 4 次预览其中包括4个预览特性、1个孵化特性看着数量不算多但这 10 个里面既有语法继续推进也有运行时性能提升还有标准库和安全边界的持续加强。这些新特性涵盖了 Java 语言的创新、安全性增强、性能和运行时的改进、库的优化以及对 JDK 的维护和清理工作整体来说都是相当给力的升级。完整特性说明可以参考https://openjdk.org/projects/jdk/26/https://jdk.java.net/26/release-notes1、语言层特性530 - Primitive Types in Patterns, instanceof, and switch模式匹配支持更多原始类型第四次预览。Java 这几年一直在补模式匹配这条线instanceof、switch等一路都在往更统一的方向走。但之前这套东西更多还是围着引用类型打转碰到long、float、double、boolean这些原始类型多少还是有点别扭。Java 26 这次继续把这个坑填平switch现在能更自然地处理这些原始类型了。来看一个示例float score 86.5f; String level switch (score) { case 0f - zero; case float s when s 60f - fail; case float s when s 85f - pass; case float s - excellent; };现在编译器对switch的检查也更严格了这些修改使编译器能够识别出更多类型的编码错误不过此前合法的少数 switch 结构现在将被拒绝。500 - Prepare to Make Final Mean Final准备让final真正变成final。这个名字非常直接意思也很明确。按正常理解final字段应该就是不可变的。但现实情况是Java 里长期存在通过深度反射去修改final字段的玩法。这就会带来两个问题代码语义没那么可信JVM 也没法完全放心做相关优化。Java 26 这次还没有一步到位封死而是先对这类修改行为发出warning警告提前给框架、序列化库、各种底层工具一个适配期。未来的 Java 版本会默认限制 final 字段的修改从而提升程序的安全性和运行效率。对于应用开发者来说如果确实有必要修改 final 字段可以有选择地开启相关能力这样既能避开当前的警告也能应对将来的限制。517 - HTTP/3 for the HTTP Client APIHTTP Client 支持 HTTP/3。这个特性我觉得很多人会喜欢因为它真的很实用。Java 标准库自带的HttpClient这几年已经越来越顺手了但在协议支持上一直差一口气现在HTTP/3终于补上了。而且这个支持方式挺舒服不需要你换掉整套 API只要显式指定协议版本就行var client HttpClient.newBuilder() .version(HttpClient.Version.HTTP_3) .build(); var request HttpRequest.newBuilder(URI.create(https://openjdk.org/)) .version(HttpClient.Version.HTTP_3) .GET() .build();还有个很实在的点如果目标服务不支持HTTP/3它默认还能自动降级到HTTP/2或HTTP/1.1完全透明的不至于一上来就不可用。所以对于网关、微服务客户端、API 调用层或者网络环境比较复杂的场景这个特性是有实际价值的。524 - PEM Encodings of Cryptographic Objects加密对象的 PEM 编码第二次预览。做过证书、密钥、TLS 配置的人对PEM肯定不陌生。平时我们看到的这种内容就是 PEM 格式-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEi/kRGOL7wCPTN4KJ2ppeSt5UYB6u cPjjuKDtFTXbguOIFDdZ65O/8HTUqS/sVzRFdg7H3/tkQ/36KdtuADbwQ -----END PUBLIC KEY-----Java 26 继续预览这套 API目标也很明确就是把密钥、证书、证书吊销列表这些对象和 PEM 文本之间的转换尽量做成标准能力不再总让大家靠第三方库、自己手搓。这类特性对企业开发真的是减负尤其是安全接入、证书管理、合规场景。525 - Structured Concurrency结构化并发第六次预览。结构化并发已经预览很多次了说明 OpenJDK 对它非常认真。它解决的问题也很实际以前你写多线程不难但一组有关系的并发任务错误怎么传、取消怎么做、结果怎么收写到后面经常乱。结构化并发就是把一组相关任务当成一个整体来处理简化了错误处理和取消操作提升了程序的可靠性也让监控变得更方便。来看示例Response handle() throws InterruptedException { try (var scope StructuredTaskScope.open()) { SubtaskString user scope.fork(() - findUser()); SubtaskInteger order scope.fork(() - fetchOrder()); scope.join(); return new Response(user.get(), order.get()); } }这种写法比一堆Future、CompletableFuture拼来拼去顺手太多了。尤其是和虚拟线程搭配起来以后Java 并发这块真的是越来越像现代语言了。。。结构化并发是把在不同线程中运行的相关任务当作一个整体来处理而Future大多是在把多个任务作为单独任务对待时派上用场的。一个 scope 通常只会阻塞一次等待它的子任务结果然后集中处理异常。你可能在会纳闷为什么这些fork方法没有返回更强大的CompletableFuture对象毕竟这些方法返回的Future只有在确认它们完成后才能用。所以使用CompletableFuture其实也没啥用因为它主要是为未完成的 futures 异步编程模式设计的而StructuredTaskScope则更偏向于阻塞式的操作。所以对于Future和CompletableFuture来说它们虽然提供了一些并发自由度但在结构化并发中反而起到了反作用。526 - Lazy Constants懒加载常量第二次预览。这个特性是 Java 25 里StableValue的继续演进版在 Java 26 里名字直接改成了LazyConstant意思也更好懂。懒加载常量存放的是不可变数据的对象在 JVM 眼中就像真正的常量一样能够享受到和声明字段final时相同的性能优化。不过相比于final字段懒加载常量在初始化时机上更具灵活性。比如下面的示例class OrderController { private final LazyConstantLogger logger LazyConstant.of(() - Logger.create(OrderController.class)); void submitOrder() { logger.get().info(order submitted); } }这样写的好处是只有真正用到logger的时候才初始化但 JVM 又能把它按常量去优化。529 - Vector API向量 API第十一次孵化。这个 API 真的挺能熬已经到第十一次孵化了。它的目标还是老样子让 Java 可以表达向量计算并在支持的 CPU 架构上运行时编译成更优的向量指令从而拿到比标量计算更好的性能。这东西对普通 CRUD 业务同学感知不大但对数据处理、科学计算、图像处理、AI 推理这类场景在现如今 AI 技术发展的今天意义很大。而且它一直还没正式转正也说明这块能力依然在等更成熟的底层配合比如 Valhalla 那条线。2、性能和运行时特性516 - Ahead-of-Time Object Caching with Any GC任意 GC 的 AOT 对象缓存。这个特性是 Project Leyden 方向上的继续推进。简单说就是AOT 对象缓存不再只适配某一种 GC 了现在可以使用任意 GC连ZGC这种低延迟回收器也能兼容这套机制。。它可以将预先初始化好的 Java 对象以 GC 无关的格式顺序加载到内存中。还优化了提前缓存ahead-of-time cache让 HotSpot 虚拟机在启动和热身阶段表现得更快同时支持任何 GC包括低延迟的 ZGC。所以这一改进提升了资源利用率也加快了 Java 应用的启动速度。OpenJDK 在 JEP 516 里提到像Spring PetClinic这样的应用在已有的 AOT 类加载和链接方案下生产启动速度可以提升41%。所以这类能力对云原生、弹性扩容、冷启动场景都挺香的。522 - G1 GC: Improve Throughput by Reducing SynchronizationG1 通过减少同步来提升吞吐。通过提升内存效率帮助开发者在更短的时间内完成更多工作。Java 26 在 G1 上做的事情就是减少了应用程序线程和垃圾回收线程之间的同步提高了使用 G1 垃圾回收器时的吞吐量。运行速度更快就能支持更多用户而无需额外硬件Java 大大提升了效率降低了基础设施成本还带来更流畅的用户体验。官方给的数据也不算虚