Java10 - 概述
Java10 是 Java 发布节奏中的一个主要版本,于 2018 年 3 月 10 日发布。对于 Java10,Oracle 将 Java 发布节奏更改为新模型,即 6 个月的发布节奏和 Oracle Java 的 LTS 模型 SE产品。 LTS 模型代表长期支持模型。
从 Java10 开始,Oracle 每 6 个月发布一个新版本的 Java,每个版本包含一个或两个主要功能。 Oracle 使用发布火车概念。 每个发布序列计划为 6 个月。 在此时间线内开发的功能将在发布中发布,否则这些功能将移至下一个发布序列。
Oracle JDK 与 OpenJDK
大多数 Oracle JDK 二进制文件都是专有的,由 Oracle 许可,并且对再分发有多项限制。 而 OpenJDK 对开发者社区更友好。 从 Java10 开始,Oracle 决定将 OpenJDK 作为主要的 JDK 进行推广,以促进基于社区的 Java 开发。 甲骨文将继续生产自己的 JDK,但会在 3 年后发布它们并将其称为 LTS 版本。 所以 OpenJDK 二进制文件将每六个月发布一次。
OpenJDK 对云和容器都很友好,因为它可以作为容器的一部分自由分发。 所以甲骨文推广OpenJDK的举动,让java对云或者容器的开发部署更加友好。
Java 9 和 Java10 是非 LTS 版本。 Java 11 版本是一个 LTS 版本。
新功能
以下是 Java10 中引入的主要新功能。
JEP 286 − 局部变量类型推断
JEP 322 − 基于时间的发布版本控制
JEP 304 − 垃圾收集器接口
JEP 307 − G1 的并行 Full GC
JEP 316 − 替代内存设备上的堆分配
JEP 296 − 将 JDK Forest 整合到一个单一的存储库中
JEP 310 − 应用类-数据共享
JEP 314 − 额外的 Unicode 语言标签扩展
JEP 319 − 根证书
JEP 317 − 基于 Java 的实验性 JIT 编译器
JEP 312 − 线程本地握手
JEP 313 − 移除 Native-Header 生成工具
JEP 319 − 根证书
JEP 319 − 根证书
Java10 使用新方法和选项增强了 70 多个 API,并删除了已弃用的 API 和选项。 我们将在下一章中看到这些变化。