Java has evolved significantly since its first release in 1996, with regular updates and improvements. Below is a list of all the major versions of Java, along with their release dates.
Java Versions and Release Dates:
Version | Release Date | Key Features |
---|---|---|
JDK 1.0 | January 23, 1996 | Initial version, basic features like applets |
JDK 1.1 | February 19, 1997 | Inner classes, JavaBeans, RMI, JDBC |
J2SE 1.2 | December 8, 1998 | Swing, Collections Framework |
J2SE 1.3 | May 8, 2000 | HotSpot JVM, RMI over IIOP |
J2SE 1.4 | February 6, 2002 | Assertions, NIO, XML parsing, logging |
J2SE 5.0 | September 30, 2004 | Generics, metadata (annotations), enums |
Java SE 6 | December 11, 2006 | Scripting, web services, JAXB, compiler API |
Java SE 7 | July 28, 2011 | Fork/Join framework, try-with-resources, NIO.2 |
Java SE 8 | March 18, 2014 | Lambda expressions, Stream API, Date and Time API |
Java SE 9 | September 21, 2017 | Module system (Project Jigsaw), JShell, HTTP/2 |
Java SE 10 | March 20, 2018 | Local-variable type inference (var keyword) |
Java SE 11 | September 25, 2018 | Long Term Support (LTS), HTTP Client API, new String methods |
Java SE 12 | March 19, 2019 | Switch expressions (preview), JVM constants API |
Java SE 13 | September 17, 2019 | Text blocks (preview), dynamic CDS archives |
Java SE 14 | March 17, 2020 | Switch expressions, pattern matching (preview) |
Java SE 15 | September 15, 2020 | Sealed classes (preview), hidden classes |
Java SE 16 | March 16, 2021 | Records, pattern matching for instanceof |
Java SE 17 | September 14, 2021 | Long Term Support (LTS), sealed classes, context-specific deserialization filters |
Java SE 18 | March 22, 2022 | Simple web server, code snippets in API docs |
Java SE 19 | September 20, 2022 | Virtual threads (preview), structured concurrency (preview) |
Java SE 20 | March 21, 2023 | Continuation of virtual threads, structured concurrency improvements |
Java SE 21 | September 19, 2023 | Long Term Support (LTS), Record patterns, pattern matching for switch, String templates |
Major Highlights:
- Java 1.0 (1996): The original release, introducing applets and basic object-oriented features.
- Java 1.2 (1998): Introduction of the Collections Framework and Swing for GUI development.
- Java 5 (2004): Added Generics, Annotations, and Enums—key features that made Java more expressive.
- Java 8 (2014): Introduced lambdas.Lambdas and the Stream API, marking one of the most significant changes in the language.
- Java 9 (2017): The Modular System (Project Jigsaw) was introduced, allowing better dependency management and modularity.
- Java 11 (2018): Long Term Support (LTS) version, crucial for enterprises.
- Java 17 (2021): Another LTS version with new features like sealed classes, pattern matching, and more.
Java’s release model changed after Java 9, with feature-based releases every six months. This means Java now has faster, more incremental updates. Additionally, every few years, certain releases are designated as LTS (Long Term Support) versions, which receive extended support and are favored by enterprise environments. The latest LTS versions are Java 8, 11, and 17.