The first version of Java was released as Java 1 in 1996. Since then, there have been several incremental releases, each of which followed a feature-driven release model. Starting with Java 10, Oracle has implemented a new, time-based release model. In this section, we will look at the original model to provide a foundation to show how the Java platform evolved, and look at the new versioning model and why it matters.
Understanding the Java platform's new versioning model
Feature-driven releases
Following the 1996 launch of Java 1, subsequent releases had the nomenclature of 1.1, 1.2, 1.3, and 1.4. With the release of 1.5, the Java platform was referred to as Java 5. Frequent updates were released for Java 5 until Java 6 was released followed by Java 7, Java 8, and Java 9.
The following table provides a condensed view of the Java release history until Java 9:
Release Name | Version | Year Released | Code Name |
Java 1 | 1.0 | 1996 | Oak |
Java 1.1 | 1.1 | 1997 | (Abigail, Brutus, Chelsea) |
Java 2 | 1.2 | 1998 | Playground |
Java 3 | 1.3 | 2000 | Kestrel |
Java 4 | 1.4 | 2002 | Merlin |
Java 5 | 1.5 | 2004 | Tiger |
Java 6 | 1.6 | 2006 | Mustang |
Java 7 | 1.7 | 2011 | Dolphin |
Java 8 | 1.8 | 2014 | Spider |
Java 9 | 9 | 2017 | *Code names no longer used |
The release of Java 9 was a significant change to the Java platform and how each of the versions was numbered. With the post-Java 9 releases, Oracle decided to abandon their feature-based model, opting for a time-released model instead.
Time-based releases
Java 9 was released in 2017 and two releases were scheduled for 2018. Those releases were Java 10 and Java 11. The version numbers for these post-Java 9 releases followed the YY.M format. So, with Java 10 released in March 2018, the version number was 18.3. Java 11, released in September 2018, has a version number of 18.9.
The general premise behind the new time-based release model is to have releases scheduled predictably and frequently. Here are the details:
- Feature releases: Issued every six months (each March and September)
- Update releases: Issued every quarter
- Long-term support release: Issued every three years
There are great gains to be had, from a developer's perspective, with this model. Developers no longer need to wait long for releases to the Java platform. More significant is the fact that no release will represent a major change to the platform of the kind that Java 9 was.