Skip to content

Latest commit

 

History

History
50 lines (41 loc) · 5.25 KB

File metadata and controls

50 lines (41 loc) · 5.25 KB

Java Release Timeline

This timeline gives the historical release context for the Java versions covered by this repository. It uses month and year because the learning goal is chronology, not exact release-day memorization.

For early releases, names can be confusing: Java 1.2, 1.3, and 1.4 were marketed as Java 2 / J2SE releases; Java 5 was also known as J2SE 5.0; Java 6 and later use the Java SE naming style.

Timeline

Java version Platform name used at the time Released Why the date matters in this project
Java 1.0 JDK 1.0 January 1996 Establishes the original language and class-library foundation.
Java 1.1 JDK 1.1 February 1997 Adds many platform features represented in java01, such as inner classes, reflection, serialization, JDBC, RMI, and JavaBeans.
Java 2 J2SE 1.2 December 1998 Begins the Java 2 era with the Collections Framework, Swing, Java 2D, and a stronger security model.
Java 1.3 (repo: Java 3) J2SE 1.3 May 2000 Adds practical runtime and library features such as dynamic proxies, timer tasks, shutdown hooks, and JNDI context.
Java 1.4 (repo: Java 4) J2SE 1.4 February 2002 Adds regex, NIO, logging, chained exceptions, assertions, preferences, XML processing, and integrated security APIs.
Java 5 J2SE 5.0 September 2004 Major language modernization: generics, enhanced for loops, autoboxing, enums, varargs, annotations, and concurrency utilities.
Java 6 Java SE 6 December 2006 Platform and tooling release: scripting, compiler API, console, monitoring, web-service support, and library refinements.
Java 7 Java SE 7 July 2011 Project Coin, NIO.2, fork/join, and invokedynamic bridge classic Java to the Java 8 era.
Java 8 Java SE 8 March 2014 Lambdas, streams, Optional, default methods, CompletableFuture, and the Date/Time API change everyday Java style.
Java 9 Java SE 9 September 2017 Introduces the module system and several practical API improvements.
Java 10 Java SE 10 March 2018 Starts the six-month release cadence with local variable type inference as the most visible feature.
Java 11 Java SE 11 September 2018 Long-term support release with HTTP Client, string/file API improvements, and lambda var.
Java 12 Java SE 12 March 2019 Starts the preview path for switch expressions and adds useful library refinements.
Java 13 Java SE 13 September 2019 Refines switch expressions and previews text blocks.
Java 14 Java SE 14 March 2020 Finalizes switch expressions and previews records and pattern matching for instanceof.
Java 15 Java SE 15 September 2020 Finalizes text blocks and previews sealed classes.
Java 16 Java SE 16 March 2021 Finalizes records and pattern matching for instanceof.
Java 17 Java SE 17 September 2021 Long-term support release that finalizes sealed classes and strengthens encapsulation.
Java 18 Java SE 18 March 2022 Adds UTF-8 by default, Simple Web Server, JavaDoc snippets, and networking extension points.
Java 19 Java SE 19 September 2022 Preview-heavy release introducing virtual threads, structured concurrency, record patterns, and FFM work.
Java 20 Java SE 20 March 2023 Refinement release for several preview and incubator features.
Java 21 Java SE 21 September 2023 Long-term support release that finalizes virtual threads, record patterns, pattern matching for switch, and sequenced collections.
Java 22 Java SE 22 March 2024 Finalizes unnamed variables/patterns and the Foreign Function and Memory API.
Java 23 Java SE 23 September 2024 Refinement release with Markdown JavaDoc comments, preview language work, and runtime notes.
Java 24 Java SE 24 March 2025 Finalizes Stream Gatherers and the Class-File API and adds several runtime/security changes.
Java 25 Java SE 25 September 2025 Long-term support release with final scoped values, flexible constructor bodies, module imports, compact source files, and new runtime/platform work.
Java 26 Java SE 26 March 2026 Adds HTTP/3 client support, removes the Applet API, and continues preview/incubator/runtime work under the JDK 25 repository baseline.

Notes On Sources

The main date source is the Java Virtual Machine Specification table of Java SE releases and class-file versions, which lists release months from JDK 1.1 through Java SE 25. For Java 1.0, this repository uses January 1996 for the original JDK 1.0 release; later JVM specification tables often begin with JDK 1.0.2 in May 1996 because they focus on class-file compatibility. Java 26 timing and feature status are taken from the OpenJDK JDK 26 project page.

For modern releases, OpenJDK and Oracle general-availability announcements provide exact release-day context. The repository keeps the documentation at month/year precision so the timeline remains easy to scan.

References