| 1996 | JDK 1.0 | First official release; basic core libraries, applets. |
| 1997 | JDK 1.1 | Inner classes, JDBC, JavaBeans, RMI. |
| 1998 | J2SE 1.2 | Swing GUI, Collections Framework, JIT compiler. |
| 2000 | J2SE 1.3 | HotSpot JVM, Java Naming and Directory Interface (JNDI). |
| 2002 | J2SE 1.4 | assert keyword, NIO (New I/O), logging API, XML parsing. |
| 2004 | J2SE 5.0 | Generics, annotations, enhanced for loop, autoboxing, varargs. |
| 2006 | Java SE 6 | Scripting API, improvements in web services, compiler API. |
| 2011 | Java SE 7 | try-with-resources, diamond operator, NIO.2, fork/join framework. |
| 2014 | Java SE 8 | Lambda expressions, Stream API, Date/Time API (java.time), default methods. |
| 2017 | Java SE 9 | Module System (Project Jigsaw), JShell REPL. |
| 2018 | Java SE 10 | Local-variable type inference (var). |
| 2018 | Java SE 11 (LTS) | HTTP Client API, new String methods, removed Java EE modules. |
| 2019 | Java SE 12–13 | Switch expressions (preview), text blocks (preview). |
| 2020 | Java SE 14 | Records (preview), pattern matching for instanceof. |
| 2021 | Java SE 16–17 (LTS) | Sealed classes, finalized records, pattern matching, enhanced pseudo-random number generators. |
| 2022–2025 | Java 18–22 | Continuous improvements: virtual threads (Project Loom), pattern matching enhancements, structured concurrency. |