Java LTS版本重要升级特性对照表
简介
介绍自 java8 以来每个稳定版本都提升了什么新特性。
本文只列出LTS版本,具体包括 Java 8, 11, 17, 21, 25 非LTS版本功能归入下一个LTS版本,不会列出绝大多数预览特性
本文只统计 JVM、重要语法、核心类库、JDK工具的升级特性,不包含某些语法糖语法和不重要类库的升级以及 bug 修复
特性对照表
| LTS版本 | JVM升级 | 语法 | 核心类库 | JDK工具 |
|---|---|---|---|---|
| Java 8 | Metaspace替代PermGen G1 GC改进 | Lambda表达式(invokedynamic) 接口默认方法 | Stream API java.time包 Optional CompletableFuture | jjs (Nashorn) jdeps依赖分析 |
| Java 11 (含9/10特性) | G1成为默认GC 统一JVM日志 Epsilon GC(无操作GC) ZGC实验版 Compact Strings 低开销Heap Profiling 改进的AArch64处理器内在函数 应用类数据共享(AppCDS) | 模块系统(Jigsaw) 私有接口方法 局部变量类型推断 | 集合 API 增强 Process API增强 Reactive Streams (Flow) HTTP Client VarHandles | jlink链接器 jshell REPL 多版本JAR 单文件源代码启动 移除JavaFX、CORBA Flight Recorder开源 |
| Java 17 (含12-16特性) | ZGC/Shenandoah生产可用 ZGC支持并发栈处理 弃用/删除多个旧GC组合 增强的伪随机数生成器 macOS AArch64移植 严格浮点运算成为默认 | 密封类(Sealed Classes) Records记录类型 Switch表达式 文本块(Text Blocks) instanceof模式匹配 | Socket API重构(基于NIO) 改进NullPointerException消息 上下文感知反序列化过滤器 UNIX域套接字通道 | jpackage打包工具 移除Nashorn引擎 强封装JDK内部API macOS Metal渲染管道 |
| Java 21 (含18-20特性) | Generational ZGC Generational Shenandoah(实验) 虚拟线程调度优化 Region Pinning for G1 G1巨型对象可移动 对象监视器与锁实现重构 | 虚拟线程(Virtual Threads) Record模式匹配 Switch模式匹配 | Sequenced Collections Key Encapsulation Mechanism API 禁止动态加载代理(默认警告) | UTF-8默认字符集 简单Web服务器 |
| Java 25 (含22-24特性) | 对象头压缩 ZGC默认支持Generational模式 Generational Shenandoah正式发布 AOT缓存简化 AOT方法性能分析 | 外部函数与内存 API(FFM) 柔性构造函数体 | 结构化并发 Stream Gatherers Scoped Values(替代ThreadLocal) Key Derivation Function API Class-File API | JFR协作采样 JFR方法计时和追踪 JFR CPU时间性能分析 |