⭐️ Java8 (2014年3月 - LTS)
正式特性
- Lambda 表达式
- 函数式接口
- Stream API
- 接口中的默认方法和静态方法
- Optional 类
- 新的日期时间API
- 方法引用
- 类型注解
- 重复注解
其他特性
- Nashorn JavaScript 引擎
- 并行数组操作
- Base64 编码解码支持
- 紧凑配置文件
Java9 (2017年9月)
正式特性
- 模块化系统
- jShell命令
- 集合工厂方法
- 多版本兼容jar包
- 接口私有方法
- String存储结构优化
- HTML5 Javadoc
- Javadoc 搜索
- 紧凑字符串
- Stack-Walking API
- 更多并发更新
Java10 (2018年3月)
正式特性
- 局部变量类型推断(var)
- 应用程序类数据共享
- 垃圾收集器接口
- G1 的并行完整 GC
- 线程局部握手
- 在备用内存设备上进行堆分配
- 根证书
- 基于时间的版本发布
⭐️ Java 11(2018年9月 - LTS)
正式特性
- 基于嵌套的访问控制
- 动态类文件常量
- Epsilon 无操作垃圾收集器
- HTTP 客户端(标准版)
- Lambda 参数的局部变量语法
- Unicode 10
- Flight Recorder
- 启动单文件源代码程序
- 低开销堆分析
- TLS 1.3
实验特性
- ZGC 可扩展低延迟垃圾收集器(实验性)
Java 12(2019年3月)
正式特性
- 微基准测试套件
- JVM 常量 API
- 一个 AArch64 端口,而不是两个
- 默认 CDS 归档
- G1 的可中止混合收集
- 从 G1 及时返回未使用的已提交内存
预览特性
- Switch 表达式(预览)
实验特性
- Shenandoah:低暂停时间垃圾收集器(实验性)
Java 13(2019年9月)
正式特性
- 动态 CDS 归档
- ZGC 取消提交未使用的内存
- 重新实现传统套接字 API
预览特性
- Switch 表达式(预览)
- 文本块(预览)
Java 14(2020年3月)
正式特性
- G1 的 NUMA 感知内存分配
- JFR 事件流
- 非易失性映射字节缓冲区
- 有用的 NullPointerExceptions
- JEP 361:Switch 表达式
- 弃用 Solaris 和 SPARC 端口
- 删除并发标记扫描(CMS) 垃圾收集器
- macOS 上的 ZGC
- Windows 上的 ZGC
- 删除 Pack200 工具和 API
预览特性
- instanceof 的模式匹配(预览)
- Records(预览)
- 文本块(第二次预览)
孵化器特性
- 打包工具(孵化器)
- 外部内存访问 API(孵化器)
Java 15(2020年9月)
正式特性
- Edwards 曲线数字签名算法(EdDSA)
- 隐藏类
- 删除 Nashorn JavaScript 引擎
- 重新实现传统 DatagramSocket API
- 禁用和弃用偏向锁定
- ZGC 可扩展低延迟垃圾收集器
- 文本块
- Shenandoah 低暂停时间垃圾收集器
- 删除 Solaris 和 SPARC 端口
- 弃用 RMI 激活以供删除
预览特性
- 密封类(预览)
- instanceof 的模式匹配(第二次预览)
- Records(第二次预览)
孵化器特性
- 外部内存访问 API(第二次孵化器)
Java 16(2021年3月)
正式特性
- 启用 C++14 语言特性
- 从 Mercurial 迁移到 Git
- 迁移到 GitHub
- ZGC 并发线程堆栈处理
- Unix 域套接字通道
- Alpine Linux 端口
- 弹性元空间
- Windows/AArch64 端口
- 基于值的类的警告
- 打包工具
- instanceof 的模式匹配
- Records
- 默认强封装 JDK 内部
预览特性
- 密封类(第二次预览)
孵化器特性
- 向量 API(孵化器)
- 外部链接器 API(孵化器)
- 外部内存访问 API(第三次孵化器)
⭐️ Java 17(2021年9月 - LTS)
正式特性
- 恢复始终严格的浮点语义
- 增强的伪随机数生成器
- 新的 macOS 渲染管道
- macOS/AArch64 端口
- 弃用 Applet API 以供删除
- 强封装 JDK 内部
- 删除 RMI 激活
- Sealed 密封类
- 删除实验性 AOT 和 JIT 编译器
- 弃用安全管理器以供删除
- 上下文特定的反序列化过滤器
预览特性
- switch 的模式匹配(预览)
孵化器特性
- 外部函数和内存 API(孵化器)
- 向量 API(第二次孵化器)
Java 18(2022年3月)
正式特性
- 字符集默认为 UTF-8
- 简单 Web 服务器
- Java API 文档中的代码片段
- 使用方法句柄重新实现核心反射
- 互联网地址解析 SPI
- 弃用完成以供删除
预览特性
- switch 的模式匹配(第二次预览)
孵化器特性
- 向量 API(第三次孵化器)
- 外部函数和内存 API(第二次孵化器)
Java 19(2022年9月)
正式特性
- Linux/RISC-V 端口
预览特性
- Record 模式(预览)
- 外部函数和内存 API(预览)
- 虚拟线程(预览)
- switch 的模式匹配(第三次预览)
孵化器特性
- 向量 API(第四次孵化器)
- 结构化并发(孵化器)
Java 20(2023年3月)
预览特性
- Record 模式(第二次预览)
- switch 的模式匹配(第四次预览)
- 外部函数和内存 API(第二次预览)
- 虚拟线程(第二次预览)
孵化器特性
- 作用域值(孵化器)
- 结构化并发(第二次孵化器)
- 向量 API(第五次孵化器)
⭐️ Java 21(2023年9月 - LTS)
正式特性
- 有序集合
- 分代 ZGC
- Record 模式
- switch 的模式匹配
- 虚拟线程
- 弃用 Windows 32 位 x86 端口以供删除
- 准备禁止代理的动态加载
- 密钥封装机制 API
预览特性
- 字符串模板(预览)
- 外部函数和内存 API(第三次预览)
- 未命名模式和变量(预览)
- 未命名类和实例主方法(预览)
- 作用域值(预览)
- 结构化并发(预览)
孵化器特性
- 向量 API(第六次孵化器)
Java 22(2024年3月)
正式特性
- G1 的区域固定
- 外部函数和内存 API
- 未命名变量和模式
- 启动多文件源代码程序
预览特性
- super(...) 之前的语句(预览)
- 类文件 API(预览)
- 字符串模板(第二次预览)
- Stream Gatherers(预览)
- 结构化并发(第二次预览)
- 隐式声明类和实例主方法(第二次预览)
- 作用域值(第二次预览)
孵化器特性
- 向量 API(第七次孵化器)
Java 23(2024年9月)
正式特性
- Markdown 文档注释
- 弃用 sun.misc.Unsafe 中的内存访问方法以供删除
- ZGC 默认分代模式
预览特性
- 模式、instanceof 和 switch 中的原始类型(预览)
- 类文件 API(第二次预览)
- Stream Gatherers(第二次预览)
- 模块导入声明(预览)
- 隐式声明类和实例主方法(第三次预览)
- 结构化并发(第三次预览)
- 作用域值(第三次预览)
- 灵活的构造函数体(第二次预览)
孵化器特性
- 向量 API(第八次孵化器)
Java 24(2025年3月)
正式特性
- 删除 Windows 32 位 x86 端口
- 提前类加载和链接
- 类文件 API
- Stream Gatherers 流收集器
- 永久禁用安全管理器
- ZGC 删除非分代模式
- 同步虚拟线程而不固定
- 链接运行时镜像而不使用 JMODs
- 量子抗性模块格基密钥封装机制
- 量子抗性模块格基数字签名算法
- 警告使用 sun.misc.Unsafe 中的内存访问方法
- 弃用 32 位 x86 端口以供删除
预览特性
- 密钥派生函数 API(预览)
- 作用域值(第四次预览)
- 模式、instanceof 和 switch 中的原始类型(第二次预览)
- 灵活的构造函数体(第三次预览)
- 模块导入声明(第二次预览)
- 简单源文件和实例主方法(第四次预览)
- 结构化并发(第四次预览)
实验特性
- 分代 Shenandoah(实验性)
- 紧凑对象头(实验性)
孵化器特性
- 向量 API(第九次孵化器)
其他特性
- 准备限制 JNI 的使用
- G1 的延迟屏障扩展
评论0
暂时没有评论