Skip to main content

Java 17

核心总结

  • 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 正式

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

switch Pattern Preview

// 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