PCon全球产品创新大会最新日程上线,这里直达 了解详情
写点什么

Java 17 正式发布,Oracle 宣布提供免费 JDK

  • 2021 年 9 月 15 日
  • 本文字数:1684 字

    阅读完需:约 6 分钟

Java 17 正式发布,Oracle宣布提供免费JDK

 当地时间 9 月 14 日,Oracle 发布了 Java 开发工具包,版本 17(JDK 17),并将成为大多数供应商的长期支持 (LTS) 版本。

 

通常情况下,Java 版本每六个月更新一次,分别在 3 月和 9 月。根据 Oracle Java SE 支持生命周期,这些支持仅保持六个月,直到下一个版本出现,而 LTS 版本的支持时间为八年。

 

JDK 17 通用版本是 Java SE 17 平台在 GNU 通用公共许可证(v2)下的实现,带有 Classpath Exception。Oracle 表示将从 Oracle JDK 17 开始提供 Oracle JDK 免费版本和更新,并在下一个 LTS 版本之后继续提供整整一年。以前的版本不受此更改的影响。而在非开源许可下,开发者可以在 Oracle 技术网找到来自 Oracle 的 JDK 17 商业版本。

 

据官网介绍,新版本主要发生了以下变化

 

  • JEP 306:恢复始终严格的浮点语义

  • JEP 356:增强型伪随机数发生器。为伪随机数生成器(PRNG)提供新的接口类型和实现,包括可跳转的 PRNG 和附加类的可分割 PRNG 算法(LXM)。

  • JEP 382:新的 macOS 渲染管线。Swing API 用于渲染的 Java 2D API,现在可以使用新 macOS 的 Apple Metal 加速渲染 API。

  • JEP 391:macOS/AArch64 端口。macOS 11.0 现在支持 AArch64 架构。该 JEP 在 JDK 中实现了对 macos-aarch64 平台的支持。添加的功能之一是支持 W^X(写异或执行)内存。它仅在 macos-aarch64 中启用,在某些情况下可以扩展到其他平台。JDK 既可以在 Intel 机器上交叉编译,也可以在基于 Apple M1 的机器上编译。

  • JEP 398:弃用 Applet API ,并进行删除。基本上无关紧要,因为所有 Web 浏览器供应商都已取消了对 Java 浏览器插件的支持或宣布了该类计划。

  • JEP 403:强封装 JDK 内部。强封装了 JDK 的所有内部元素,除了像 sun.misc.Unsafe 这样的关键内部 API。

  • JEP 406:切换模式匹配(预览)。使用 switch 表达式和语句的模式匹配以及对模式语言的扩展来增强 Java 编程语言。

  • JEP 407:删除 RMI 激活。RMI Activation 是 RMI 的一个过时部分,自 Java SE 8 以来一直是可选的。 RMI Activation 已被 Java SE 15 中的 JEP 385 弃用,并被 JEP 407 从此版本中删除。该 rmid 工具也已被删除。

  • JEP 409:密封类。密封类已添加到 Java 语言中。

  • JEP 410:删除实验性 AOT 和 JIT 编译器。HotSpot VM 中的 AOT Compiler 相关代码已被删除。使用 JEP 295 定义的 HotSpot VM 选项会在 VM 初始化时产生“无法识别的 VM 选项”错误。

  • JEP 411:弃用安全管理器,并进行删除。安全管理器和与之相关的 api 已经弃用,并将在未来的版本中删除。

  • JEP 412:外部函数和内存 API(孵化器)。通过该 API ,Java 程序可以在 Java 运行时之外与代码和数据进行互操作。通过有效地调用外部函数(即 JVM 外的代码),以及安全地访问外部内存(即不由 JVM 管理的内存),API 使 Java 程序能够调用本地库并处理本地数据,而不会有 JNI 的脆弱性和危险。

  • JEP 414:Vector API(第二孵化器)

  • JEP 415:特定于上下文的反序列化过滤器。允许应用程序通过 jvm 范围的过滤器工厂配置特定于上下文的和动态选择的反序列化过滤器,调用该过滤器工厂可为每个单独的反序列化操作选择过滤器。

 

除此之外,新版本还有数百个较小的增强功能和近两千个 bug 修复。开发者可通过以下链接下载或了解更多:

 

立即下载:https: //social.ora.cl/6013y4ya7

发行说明:https: //social.ora.cl/6019y4yxD

API Javadoc:https: //social.ora.cl/6011y4yx1

文档:https://docs.oracle.com/en/java/javase/17/index.html

 

Oracle 透露下一个 LTS 版本应该是 Java 21,并在 2023 年 9 月可用,这将把正在进行的 LTS 发布周期从 3 年改为 2 年。Oracle 将至少在 2029 年 9 月之前为客户提供 Java 17 的安全、性能和错误修复更新。

 

对于迁移到 Java 17 的难度,JetBrains 的 Java 开发者倡导者 Dalia Abo Sheasha 认为最大的问题将是强封装。“因为之前我的建议是保持非法访问标记,而强封装意味着它不再存在。”

 

“JDK 开发人员面临的最大挑战之一就是,虽然向 Java 添加许多特性是件好事,但他们必须以一种非常可控的方式来做,以确保向后兼容性不会从根本上受到影响。”Azul Systems 副首席技术官 Simon Ritter 表示,Java 比 Kotlin 等语言进化得慢的原因,很大程度上就是为了确保不会被破坏。”

 

2021 年 9 月 15 日 11:215497

评论 2 条评论

发布
用户头像
JDK 8 足矣
2021 年 10 月 09 日 09:45
回复
守旧只会让Java失去市场,云原生时代已经出现颓势了
2021 年 11 月 17 日 14:47
回复
没有更多了
发现更多内容

松耦合

sinsy

设计模式 RabbitMQ

翻译:《实用的Python编程》01_03_Numbers

codists

Python

11. 用别人写好的代码,完成我的工作,剩下的时间去摸鱼

梦想橡皮擦

Python 2月春节不断更 python入门

什么是MySQL数据库?看这一篇干货文章就够了!

魔王哪吒

学习 程序员 后端 MySQ 2月春节不断更

第四章作业

Deborah

今日出门

Nydia

诊所数字化从预约开始

boshi

数字化医疗 七日更 线上预约

week12-homework

J

保持模块的兼容性

Rayjun

go modules Go 语言

Elasticsearch Mapping Index索引

escray

elastic 七日更 死磕Elasticsearch 60天通过Elastic认证考试 2月春节不断更

面向对象设计原则

引花眠

面向对象设计原则

公路交通区块链技术的痛点问题和典型场景应用

CECBC

区块链

JUnit速查手册

jiangling500

Java JUnit

深入 Python 解释器源码,我终于搞明白了字符串驻留的原理!

Python猫

Python 编程

数字资产助力未来十年打赢数字经济战

CECBC

数字经济

Flink集群部署:Standalone部署

正向成长

CI-基于JMeter的性能测试

夏兮。

机器学习笔记之:

Nydia

【译文】工作六年后,我对软件开发的认知转变

Zhendong

程序员 软件开发

年终述职PPT(996一年,怎么会什么都没干!)

Arvin

年终总结

ElasticSearch.02 - 安装

insight

elasticsearch 2月春节不断更

工作学习累了?试试 GitHub 上的那些简单易学的游戏项目吧!

JackTian

GitHub 开源 游戏 2月春节不断更

记一次有意思的微信视频号直播

小匚

产品经理

【LeetCode】最大连续1的个数Java题解

HQ数字卡

算法 LeetCode 2月春节不断更

中国科学家突破区块链核心技术

CECBC

区块链

程序员成长第八篇:做好测试工作

石云升

程序员 测试 2月春节不断更

日记 2021年2月15日(周一)

Changing Lin

2月春节不断更

ARTS打卡 第31周

引花眠

微服务 ARTS 打卡计划

《我们脑中挥之不去的问题》 - 卓克科普(3)

石云升

读书笔记 科普 2月春节不断更

华为 MPLS的数据转发流程

艺博东

华为

Idea应用启动时WEB-INF/lib无效标记问题处理

程序员架构进阶

Java IntelliJ IDEA 七日更 2月春节不断更

ShadowRealm 与微前端沙箱

ShadowRealm 与微前端沙箱

Java 17 正式发布,Oracle宣布提供免费JDK-InfoQ