The version-string scheme helps to easily distinguish major, minor, security, and patch update releases.
The format of the version-string is
$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 22.214.171.124.
$PATCH version number is reset to zero when
$MAJOR version numbers are incremented.
$MAJOR version number is incremented, the subsequent version numbers of
$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.