Java 教程

Java 控制语句

面向对象编程

Java 内置类

Java 文件处理

Java 错误和异常

Java 多线程

Java 同步

Java 网络

Java 集合

Java 接口

Java 数据结构

Java 集合算法

高级 Java

Java 杂项

Java API 和框架

Java 类参考

Java 有用资源

Java 的基于时间的版本发布


JEP 322 - 基于时间的版本发布

从 Java 10 开始,Oracle 引入了严格的基于时间的版本发布模型。现在 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
广告