Start Learning
Javaneer

Java Version Timeline

Three decades of Java, release by release - and the features that defined each one.

  1. 1996

    Java 1.0

    • The first public release - 'Write Once, Run Anywhere'
  2. 1998

    Java 1.2

    • The Collections Framework
    • Swing UI toolkit
  3. 2004

    Java 5

    • Generics
    • Annotations
    • Enhanced for-loop
    • Enums
    • Autoboxing
  4. 2006

    Java 6

    • Performance improvements
    • Scripting support
  5. 2011

    Java 7

    • try-with-resources
    • The diamond operator <>
    • Strings in switch
  6. 2014

    Java 8

    LTS
    • Lambdas
    • The Stream API
    • java.time
    • Default methods
    • Optional
  7. 2017

    Java 9

    • The module system (JPMS)
    • JShell (REPL)
    • Six-month release cadence begins
  8. 2018

    Java 10

    • Local-variable type inference (var)
  9. 2018

    Java 11

    LTS
    • The modern HttpClient
    • Run .java files directly
    • String methods
  10. 2020

    Java 14

    • Switch expressions
    • Helpful NullPointerExceptions
  11. 2021

    Java 16

    • Records
    • Pattern matching for instanceof
  12. 2021

    Java 17

    LTS
    • Sealed classes
    • A major LTS baseline
  13. 2023

    Java 21

    LTS
    • Virtual threads (Project Loom)
    • Pattern matching for switch
    • Record patterns
  14. 2025

    Java 25

    LTS
    • The latest LTS
    • Continued performance and language refinements