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