Skip to content

JDK 11 LTS 官方 Release Notes 深度拆解大典

参考官方文档: OpenJDK JDK 11 Official Features & Release Notes
JDK 11 是继 JDK 8 之后的第二个 LTS 长期支持版本。它带来了 标准化 HTTP Client单文件免编译直接运行ZGC 超低延迟垃圾回收器 以及 JFR (Java Flight Recorder) 开源。本文严格对照 OpenJDK 官方 17 个 JEP 提案进行规范化深度拆解。


🐳 容器运行环境 (Runtime Environment)

在标准 Docker 镜像 eclipse-temurin:11-jdk-alpine 中执行控制台诊断指令 java -version

📸 Unverified Snapshot📋eclipse-temurin:11-jdk-alpine
⏱️ 942msNot verified
openjdk version "11.0.31" 2026-04-21
OpenJDK Runtime Environment Temurin-11.0.31+11 (build 11.0.31+11)
OpenJDK 64-Bit Server VM Temurin-11.0.31+11 (build 11.0.31+11, mixed mode)

1. 🔀 语言语法与开发效率 (Syntax & Developer Ergonomics)

JEP 323: Local-Variable Syntax for Lambda Parameters

允许在 Lambda 表达式参数列表中声明 var 关键字,使得开发者能够为 Lambda 参数添加属性注解(如 @Deprecated var a)。

java
BiFunction<String, String, String> concat = (@Deprecated var a, var b) -> a + " " + b;
System.out.println(concat.apply("Hello", "JDK 11"));
📸 Unverified Snapshot📋eclipse-temurin:11-jdk-alpine
⏱️ 2445msNot verified
Var in Lambda with Annotations:
BiFunction: (@Deprecated var a, var b) -> a + " " + b
Result: Hello JDK 11

JEP 330: Launch Single-File Source-Code Programs

允许直接通过 java SingleFileApp.java 命令编译并运行单个 Java 源文件,免去显式执行 javac 的繁琐过程。

java
public class SingleFileApp {
    public static void main(String[] args) {
        System.out.println("Running directly without manual javac!");
    }
}
📸 Unverified Snapshot📋eclipse-temurin:11-jdk-alpine
⏱️ 1718msNot verified
Single-File Execution:
$ java SingleFileApp.java
Running directly without manual javac!

2. 🌐 现代网络通信与标准库 (Standard Library & Networking)

JEP 321: HTTP Client (Standard)

java.net.http 包中引入全新的标准化 HTTP Client,原生支持 HTTP/1.1、HTTP/2 以及 WebSocket,全面取代老旧阻塞的 HttpURLConnection

java
HttpClient client = HttpClient.newBuilder()
        .version(HttpClient.Version.HTTP_2)
        .build();

HttpRequest request = HttpRequest.newBuilder()
        .uri(URI.create("https://httpbin.org/get"))
        .GET()
        .build();
📸 Unverified Snapshot📋eclipse-temurin:11-jdk-alpine
⏱️ 2871msNot verified
HTTP/2 Client Initialized.
Async GET Request -> Status Code: 200 OK
Protocol: HTTP/2

3. 🧠 垃圾回收与 JVM 性能剖析 (GC & Diagnostics)

JEP 333: ZGC: A Scalable Low-Latency Garbage Collector (Experimental)

引入大堆亚毫秒级停顿垃圾回收器 ZGC(Z Garbage Collector),可在TB级堆内存下保证最大 GC 暂停时间不超过 10ms。

📸 Unverified Snapshot📋eclipse-temurin:11-jdk-alpine
⏱️ 1685msNot verified
ZGC Low-Latency Collector:
-XX:+UseZGC enabled.
Max Pause Time: < 1ms on 128GB heap!

JEP 318: Epsilon: A No-Op Garbage Collector

引入只分配内存、不进行任何回收的 Epsilon 垃圾回收器,专门用于性能基准测试与短生存期的 Serverless 任务。


JEP 328: Flight Recorder (JFR)

将以往仅在商业版 JDK 中提供的 Java Flight Recorder 诊断工具完全开源并内置于 OpenJDK 核心,提供极低开销的 JVM 运行时事件监控与分析。


4. 📜 全部 17 个官方 JEP 提案索引清单 (JDK 11 Full JEP Matrix)

JEP 编号JEP 提案名称状态核心领域 / 变更意义
JEP 181Nest-Based Access Control正式版嵌套类/内部类基于 Nest 的访问控制权限优化
JEP 309Dynamic Class-File Constants正式版常量池动态类文件常量 (CONSTANT_Dynamic)
JEP 315Improve Aarch64 Intrinsics正式版优化 ARM64 (AArch64) 内联函数指令集
JEP 318Epsilon: A No-Op Garbage CollectorExperimental零回收 Epsilon 垃圾回收器 (性能测试/Serverless)
JEP 320Remove the Java EE and CORBA ModulesRemoved彻底移除 Java EE (JAX-WS, JAXB) 和 CORBA 模块
JEP 321HTTP Client (Standard)正式版标准化 HTTP/2 & WebSocket 客户端
JEP 323Local-Variable Syntax for Lambda Parameters正式版Lambda 参数允许使用 var 关键字
JEP 324Key Agreement with Curve25519 and Curve448正式版密码学 Curve25519/448 椭圆曲线密钥协商
JEP 327Unicode 10正式版升级支持 Unicode 10.0 标准字符集
JEP 328Flight Recorder正式版Java 飞行记录器 (JFR) 开源并集成于 JDK
JEP 329ChaCha20 and Poly1305 Cryptographic Algorithms正式版实现 ChaCha20 和 Poly1305 加密算法
JEP 330Launch Single-File Source-Code Programs正式版单文件源程序免编译直接运行 (java App.java)
JEP 331Low-Overhead Heap Profiling正式版JVMTI 低开销堆内存分析与采样 API
JEP 332Transport Layer Security (TLS) 1.3正式版支持安全传输层协议 TLS 1.3
JEP 333ZGC: A Scalable Low-Latency Garbage CollectorExperimentalZGC 亚毫秒级低延迟垃圾回收器
JEP 335Deprecate the Nashorn JavaScript EngineDeprecated废弃 Nashorn JavaScript 脚本引擎
JEP 336Deprecate the Pack200 Tools and APIDeprecated废弃 Pack200 压缩工具与 API

Released under the MIT License.