跳至正文
Wener Notes

Java 17

约 2 分钟阅读
  • Released: 2021-09-14
  • LTS

核心总结

  • LTS。Sealed Classes 转正,JDK 内部强封装正式推进,Security Manager/Applet/RMI Activation 进入移除阶段。

升级关注

  • LTS 升级重点是内部 API 强封装、Security Manager 废弃、RMI Activation/AOT/Graal JIT 移除。
  • Sealed Classes、增强 PRNG、macOS/AArch64 是长期稳定能力。

示例

Sealed Classes 正式

java
sealed interface Result permits Ok, Err {}
record Ok(String value) implements Result {}
record Err(Throwable error) implements Result {}

switch Pattern Preview

java
// javac --enable-preview --release 17 Demo.java
static String render(Object value) {
  return switch (value) {
    case String s -> s;
    case Integer i -> "int=" + i;
    default -> "unknown";
  };
}

JEPs

JEP状态分类标题中文描述
JEP 306正式库/APIRestore Always-Strict Floating-Point Semantics恢复始终严格浮点语义。
JEP 356正式库/APIEnhanced Pseudo-Random Number Generators增强伪随机数生成器 API。
JEP 382正式工具/平台New macOS Rendering PipelinemacOS 使用 Metal 渲染管线。
JEP 391正式工具/平台macOS/AArch64 Port支持 macOS Apple Silicon。
JEP 398废弃库/APIDeprecate the Applet API for Removal废弃 Applet API,准备移除。
JEP 403正式库/APIStrongly Encapsulate JDK Internals强封装 JDK 内部 API。
JEP 406预览语言Pattern Matching for switch (Preview)switch 模式匹配预览。
JEP 407移除/禁用库/APIRemove RMI Activation移除 RMI Activation。
JEP 409正式语言Sealed Classes密封类转正。
JEP 410移除/禁用GC/RuntimeRemove the Experimental AOT and JIT Compiler移除实验 AOT 和 Graal JIT 编译器。
JEP 411废弃安全/加密Deprecate the Security Manager for Removal废弃 Security Manager,准备移除。
JEP 412孵化Panama/向量/原生Foreign Function & Memory API (Incubator)外部函数和内存 API 孵化。
JEP 414第二次孵化Panama/向量/原生Vector API (Second Incubator)Vector API 第二次孵化。
JEP 415正式安全/加密Context-Specific Deserialization Filters上下文相关反序列化过滤器。

References

关联信息

反向链接、本文链接的其他页面和外部资料。

反向链接

  • Java 版本
    笔记 · Java 17

    自 Java 9 · 每 6 个月一个版本 · 每 2 年一个 LTS - 每 4 个版本 · Java 11 - Java 17 隔了 3 年, 之后为每隔两年 · Java JEP 与版本变化 · 参考 · Java version history

  • Java JEP 与版本变化
    笔记 · 17

    资料来源以 OpenJDK JDK Project 页面和 JEP 页面为主。Java 5–7 主要按 JSR/项目整理;JDK 8 起按代表性 JEP 整理;JDK 10 起列出该版本项目页 Features 中的全部 JEP。 · | 状态 | 含义 | 使用建议 |

参考资料

其他外链16 条
最近更新commit 25ad4d4编辑