Java10 基于时间的发布版本控制
从Java 10 开始,Oracle 为 Java 版本引入了严格的基于时间的版本控制模型。现在 Java 将在每六个月后发布一个主要版本。Java 10 于 2018 年 3 月发布,以后所有主要版本都计划在未来几年的 3 月和 9 月发布。发布进一步分为三大类。
- 功能发布: 功能发布包含特定于语言的功能、JVM 功能、新/改进的 API、删除/弃用 API。这些功能发布的时间是固定的,并且对要包含在特定版本中的功能没有限制。如果正在开发的功能不是最新版本的一部分,那么它将在下一个版本中计划。
- 更新版本: 更新版本包括错误修复、安全问题修复、回归修复等。每个更新版本计划在 1 月、4 月、7 月和 10 月的每个季度发布。在宣布下一个功能版本之前,每个功能版本将收到两个更新版本。
- 长期支持 (LTS) 版本:从 2018 年 9 月开始,每三年发布一次长期支持版本。Oracle 将在未来三年内为此版本提供支持和更新。此版本主要面向在生产部署中使用 Java 的企业。
JDK 版本格式
现在的版本遵循以下格式。
$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 : 此数字表示仅在紧急情况下促进关键问题时才会增加的任何紧急发布。
Java10 版本控制的示例
以下程序显示了 JAVA 10 的版本控制细节。
package com.yiidian;
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