gpt4 book ai didi

java - Oracle JDK 版本是如何编号的?

转载 作者:行者123 更新时间:2023-12-02 18:01:50 25 4
gpt4 key购买 nike

现代 Oracle JDK 的版本号似乎包含不同数量的点线段。例如,this page列出这些版本号:

  • JDK 17.0.5
  • JDK 17.0.4.1
  • JDK 17.0.4
  • JDK 17.0.3.1
  • JDK 17.0.3
  • JDK 17.0.2
  • JDK 17.0.1
  • JDK 17

这不是语义版本控制,因为可以有三个以上的数字组件。四是(点分隔)数字组件的最大数量,还是可以有更多?这些数字的含义是什么?它们何时会增加?例如。与从 17.0.3 迁移到 17.0.3.1 相比,从 17.0.2 迁移到 17.0.3 有何说明?应如何提及每个数字(例如“主要”、“次要”或“补丁”)?有权威的资料来解释这个编号系统吗?

最佳答案

最多有四个组件。它们是“功能”、“临时”、“更新”和“补丁”。来自 Oracle's docs :

Java SE platform has adopted time-based release model with the JDK being released every six months.

As of JDK 10 and later, the format of the version string, which reflects the Java SE platform's time-based release model, is $FEATURE.$INTERIM.$UPDATE.$PATCH.

  • $FEATURE is the version number that is incremented for every feature release. The feature release contains new features and changes to the existing features as specified by the Java SE platform specification. The version number is incremented every six months. For example, the version number for the March 2018 release is 10, the version number for the September 2018 release is 11, and so on.

  • $INTERIM is the version number that is incremented for every interim release, which contains bug fixes and enhancements. An interim release does not contain incompatible changes, feature removals, nor any changes to the standard APIs. The version number for the interim release is always zero (0) as the six-month release model does not include interim releases. However, this version number is reserved for future interim releases, if any.

  • $UPDATE is the version number that is incremented for an update release, which includes fixes for security issues, regressions, and bugs in new features. The version number is incremented one month after the $FEATURE release and every three months thereafter. For example, the full version string for the October update release is 17.0.1, the full version string for the January update release is 17.0.2, and so on.

  • $PATCH is the version number that is incremented for an emergency patch release to fix a critical issue.

The version string doesn't have trailing zero elements. For example, if the value of $FEATURE is 17, the value of $INTERIM is 0, the value of $UPDATE is 1, and the value of $PATCH is 0, then the full version string is 17.0.1.

在版本 10 之前,版本字符串组件称为 "major", "minor", "security" and "patch"并且含义略有不同:

The version-string scheme helps to easily distinguish major, minor, security, and patch update releases.

The format of the version-string is $MAJOR.$MINOR.$SECURITY.$PATCH.

  • $MAJOR is the version number that is incremented for a major release, for example JDK 9, which contains significant new features as specified by the Java SE platform specification. A major release contains new features and changes to existing features, which are planned and notified well in advance.

  • $MINOR is the version number that is incremented for each minor update, such as bug fixes, revisions to standard APIs, or implementation of features outside the scope of the relevant platform specifications. These specifications might be new JDK-specific APIs, additional service providers, new garbage collectors, and ports to new hardware architectures. For example, if an update is released for JDK 9, then the version-string (containing major and minor release numbers) is 9.1.

  • $SECURITY is the version number that is incremented for a security-update release, which contains critical fixes, including those necessary to improve security. For example, for a JDK 9 security-update release, the version format can be 9.1.2, where 2 is the value of security update.

  • $PATCH is the version number that is incremented for a release containing security and high-priority customer fixes, which have been tested together. For example, if JDK 9 has Minor version 1, Security release 1, and Patch update 1, then the version-string format will be 9.1.1.1.

The $PATCH version number is reset to zero when $SECURITY, $MINOR, or $MAJOR version numbers are incremented.

When the $MAJOR version number is incremented, the subsequent version numbers of $MINOR and $SECURITY elements are set to zero. However, when the $MINOR version number is incremented, the subsequent $SECURITY version number need not be set to zero. Regardless of the $MINOR version number, the higher security release value indicates a more secure release.

关于java - Oracle JDK 版本是如何编号的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74206258/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com