New version-string scheme
Prior to Java 9, the release numbers did not follow industry standard versioning—semantic versioning. For example, the last four JDK 8 releases were as follows:
- Java SE 8 Update 144
- Java SE 8 Update 151
- Java SE 8 Update 152
- Java SE 8 Update 161
- Java SE 8 Update 162
Semantic versioning uses a major, minor, patch (0.0.0) schema as follows:
- Major equates to new API changes that are not backward compatible
- Minor is when functionality is added that is backward compatible
- Patch refers to bug fixes or minor changes that are backward compatible
Oracle has embraced semantic versioning starting with Java 9 and beyond. For Java, a major-minor-security schema will be used for the first three elements of Java version numbers:
- Major: A major release consisting of a significant new set of features
- Minor: Revisions and bug fixes that are backward compatible
- Security: Fixes deemed critical to improve security
There were three releases of Java 9; the initial release and two updates. The versions listed as follows demonstrate the major-minor-security schema:
- Java SE 9
- Java SE 9.0.1
- Java SE 9.0.4
As detailed in Chapter 1, The Java 11 Landscape, versioning past Java 9 will follow the time-release schema of YY.MM. Using that schema, the four releases following Java 9 are and will be as follows:
- Java SE 18.3 (March 2018)
- Java SE 18.9 (September 2018)
- Java SE 19.3 (March 2019)
- Java SE 19.9 (September 2019)