Skip to content

JDK 13

JDK 13 继续打磨 Switch 表达式,并首次预览文本块;平台侧重点是动态 CDS 和网络栈维护性。

Text Blocks(Preview)

java
String json = """
        {
          "name": "Java",
          "version": 13
        }
        """;

文本块减少 JSON、SQL、HTML 等多行文本中的转义和拼接。JDK 13 中仍为 Preview,最终在 JDK 15 正式发布。

Switch 表达式(第二次 Preview)

JDK 13 用 yield 替换第一版 Preview 中容易混淆的 break value

java
int length = switch (value) {
    case "" -> 0;
    default -> {
        int result = value.strip().length();
        yield result;
    }
};

JDK 13 的 switch 尚不支持 case null,仍需在进入 switch 前单独处理 null

JVM 与运行时

特性说明
Dynamic CDS Archives应用退出时动态归档已加载的应用类
Legacy Socket API 重写Socket/ServerSocket 底层实现更易维护,并更好适配用户态线程演进
ZGC 归还内存把长期未使用的堆内存归还操作系统
-XX:SoftMaxHeapSizeZGC 可在最大堆以内使用软上限参与内存管理

Preview 使用原则

Preview 字节码只能在对应版本并开启 --enable-preview 时运行。它适合学习和验证反馈,不适合作为需要长期兼容的公共库 API。