Java 10 - 基于时间的发布版本控制
JEP 322 - 基于时间的发布版本控制
从 Java 10 开始,Oracle 为 Java 版本引入了严格的基于时间的版本控制模型。现在 Java 将在每六个月后发布一个主要版本。 Java 10 于 2018 年 3 月发布,之后的所有主要版本都计划在未来几年的 3 月和 9 月发布。版本进一步分为三大类。
-
功能发布 − 功能版本包含语言特定的功能、JVM 功能、新的/改进的 API、API 的删除/弃用。这些功能发布的时间是固定的,并且对特定版本中包含的功能没有任何限制。如果正在开发的功能不是最新版本的一部分,那么它将在下一个版本中进行计划。
-
更新版本 − 更新版本包括错误修复、安全问题修复、回归修复等。每个更新版本计划在 1 月、4 月、7 月和 10 月的每个季度发布。在宣布下一个功能版本之前,每个功能版本都会收到两个更新版本。
-
长期支持 (LTS) 版本 − 自 2018 年 9 月起,每三年发布一次长期支持版本。Oracle 将在未来三年内为此版本提供支持和更新。此版本主要面向在生产部署中使用 Java 的企业。
版本格式
一个版本现在遵循以下格式。
$FEATURE.$INTERIM.$UPDATE.$PATCH
在哪里
-
$FEATURE − 此数字表示主要功能发布,并且在每个功能发布后加 1。对于 Java 10,它是 10。
-
$INTERIM − 此数字表示包含错误修复和增强功能的任何非功能、非更新版本。此版本没有任何不兼容的更改、任何 API 删除或对标准 API 的更改。一个功能版本,将这个计数器设为 0。
-
$UPDATE − 此数字表示功能发布后完成的更新发布。例如,2018 年 4 月的 Java 更新版本是 JDK 10.0.1,2018 年 7 月的更新版本是 JDK 10.0.2 等等。
-
$PATCH − 此数字表示任何紧急发布仅在紧急发布关键问题的情况下才会增加。
示例
以下程序显示了 JAVA 10 的版本控制细节。
public class Tester { public static void main(String[] args) { Runtime.Version version = Runtime.version(); System.out.printf(" feature: %s%n interim: %s%n update: %s%n patch: %s%n", version.feature(), version.interim(), version.update(), version.patch()); } }
输出
它将打印以下输出。
feature: 10 interim: 0 update: 2 patch: 0
java