Version History

Java has gone through several major versions and numerous updates and releases since its inception. Here's an overview of some of the significant Java versions:

  1. JDK 1.0 (January 23, 1996):

    • This was the initial release of Java, including the core features of the language and the Java applet concept for web browsers.

  2. JDK 1.1 (February 19, 1997):

    • JDK 1.1 introduced several enhancements, including the Abstract Window Toolkit (AWT), JDBC (Java Database Connectivity), and the RMI (Remote Method Invocation) API.

  3. J2SE 1.2 (December 8, 1998):

    • Renamed as "Java 2 Platform, Standard Edition (J2SE) 1.2."

    • Introduced the Swing GUI toolkit, Collections Framework, and Java Naming and Directory Interface (JNDI).

  4. J2SE 1.3 (May 8, 2000):

    • Added the HotSpot JVM, Java Naming and Directory Interface (JNDI) enhancements, and improved performance.

  5. J2SE 1.4 (February 6, 2002):

    • Brought significant changes, including the assertion mechanism, regular expressions, and the NIO (New I/O) package.

  6. J2SE 5.0 (September 30, 2004):

    • Introduced major language enhancements, such as generics, metadata annotations, enumerated types, and the enhanced for loop.

    • This version also saw the beginning of Java's adoption of a more regular and predictable release cycle.

  7. Java SE 6 (December 11, 2006):

    • Included features like scripting support with the addition of the javax.script package and introduced improvements in performance and monitoring.

  8. Java SE 7 (July 28, 2011):

    • Introduced language enhancements like the try-with-resources statement, diamond operator (<>), and support for strings in switch statements.

  9. Java SE 8 (March 18, 2014):

    • A landmark release that brought lambdas, the Stream API, the java.time package for modern date and time handling, and the Nashorn JavaScript engine.

  10. Java SE 9 (September 21, 2017):

    • Introduced the module system (Project Jigsaw) to modularize the Java platform and improve maintainability.

    • This version also marked the beginning of the new, more frequent release cadence.

  11. Java SE 10 (March 20, 2018):

    • Introduced local-variable type inference with the var keyword.

    • This version exemplified the new rapid release cadence.

  12. Java SE 11 (September 25, 2018):

    • A Long-Term Support (LTS) release that focused on stability and performance improvements.

    • Marked the end of commercial support for Java SE 8.

  13. Java SE 12, 13, 14, 15, 16 (2019 - 2021):

    • These releases continued the new release cadence, introducing various features and enhancements like switch expressions, text blocks, records, and pattern matching.

  14. Java SE 17 (September 14, 2021):

    • Another LTS release, with features such as sealed classes, pattern matching for the instanceof operator, and foreign function and memory API.

  15. Future Versions (Ongoing):

    • Oracle and the Java community continue to release new versions of Java every six months, with both feature releases and LTS releases planned for the future. Future versions are expected to bring further language enhancements, libraries, and improvements.

It's essential to note that while the language and platform have evolved, Java's commitment to backward compatibility ensures that older Java applications continue to run on newer Java versions with minimal modifications. Developers can choose between LTS releases for long-term stability or feature releases to access the latest language and platform enhancements.

Last updated