Java Features from Java 1.
0 to Java 24
Version Key Features
Java 1.0–1.4 Core APIs, AWT, Applets, Swing, Collections, Regex, NIO, Logging, Assertions
Java 5 Generics, Enums, Annotations, Varargs, Autoboxing, Concurrency utilities
Java 6 Scripting API, Compiler API, JDBC 4.0, Performance improvements
Java 7 Diamond operator, Strings in switch, Try-with-resources, Multi-catch, Fork/Join, NIO.2
Java 8 Lambdas, Streams API, Optional, Date/Time API, Default methods, Nashorn
Java 9 Module system, JShell REPL, Multi-release JARs, HTTP/2 Client (incubator)
Java 10 Local-variable type inference (var), Application CDS, GC interface
Java 11 (LTS) HTTP Client (standard), Flight Recorder, ZGC, Epsilon GC, Local var in lambdas
Java 12–13 Switch expressions (preview), Text Blocks (preview), Shenandoah GC
Java 14–16 Records, Pattern Matching, Sealed classes, NPE helpful messages, Hidden classes
Java 17 (LTS) Sealed classes (final), Strong encapsulation, Pattern matching, New rendering pipeline
Java 18 Simple Web Server, UTF-8 default, Javadoc snippets, Vector API
Java 19 Virtual threads (preview), Record patterns (preview), Structured concurrency
Java 20 Scoped values, Virtual threads (2nd preview), Record patterns (2nd preview)
Java 21 (LTS) Virtual threads (final), Sequenced collections, Key Encapsulation API
Java 22 Flexible constructor bodies, String Templates (2nd preview), Stream API updates
Java 23 Unnamed variables, Implicit classes, Instanceof + patterns for primitives, Stream gatherers
Java 24 Generational Shenandoah, Compact Object Headers, Vector API, Scoped Values, Structured Concurre