写点什么

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

2021 年 9 月 15 日

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:211

评论

发布
暂无评论
发现更多内容

两天搞定一个BUG

IT蜗壳-Tango

7月日更

松华说|如何快速熟悉和上手业务

松花皮蛋me

【LeetCode】三数之和Java题解

HQ数字卡

算法 LeetCode 7月日更

给AI时代装配“新大脑”:数据密集型超算带来了哪些变革?

脑极体

【Flutter 专题】88 初识状态管理 Bloc (三)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 7月日更

蚂蚁矿池系统软件开发方案

开發I852946OIIO

ARTS 日常打卡 - 7

pjw

一篇并不起眼的Kafka面试题

王知无

Reactive Spring实战 -- 响应式MySql交互

binecy

MySQL 响应式编程 Reactive Spring

架构之:serverless架构

程序那些事

系统架构 软件架构 架构设计

RFX币挖矿系统软件开发简介

开發I852946OIIO

Ansible Role

耳东

ansible 7月日更 ansible role

代理

卢卡多多

代理 代理原理 7月日更

用太极拳讲分布式理论,真舒服!

悟空聊架构

分布式 事务 CAS Base 7月日更

Linux之文件属性详解

入门小站

Linux

在线ASCII流程图编辑器工具

入门小站

工具

架构训练营模块一作业

Honey拯救世界

架构实战营

登录验证那些事儿

江湖一点雨

Token Cookie JWT session处理方案 单点登录

我被InfoQ写作平台签约啦

xcbeyond

程序人生 签约计划

共1575道,内卷把我逼成“收集王”汇总十家大厂面试题后,产出Java“完美圣经”

Java架构师迁哥

自建开发工具系列-Webkit内存动量监控UI(四)

Tim

UI JSX

从0到1:用脚做一个路由器漏洞实例

网络安全学海

运维 网络安全 信息安全 渗透测试· SQL注入

Rust从0到1-智能指针-RefCell<T>

rust 智能指针 smart pointer RefCell<T>

打通“任督二脉”:Android 应用安装优化实战

vivo互联网技术

android 打包APK so文件

让AI抛弃“小作坊”,拥抱“工业化”:盘古大模型究竟是什么?

脑极体

Xshell 如何导入 PuTTYgen 生成的 key

HoneyMoose

如何优雅的实现一个Client

Apologize

Java 设计模式 代码设计 client

支点交易所APP系统开发介绍

开發I852946OIIO

Structured Concurrency for C

实力程序员

🏆【SpringBoot技术专题】「Cache缓存组件」Redis缓存使用技巧及注解大全

李浩宇/Alex

redis cache Sprint Boot 7月日更

Flink生产环境TOP难题与优化,阿里巴巴藏经阁YYDS

王知无

MySQL 核心特性与优化

MySQL 核心特性与优化

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