Skip to content

Latest commit

 

History

History
33 lines (31 loc) · 5.91 KB

File metadata and controls

33 lines (31 loc) · 5.91 KB

Feature Index

This table provides a compact release-level overview of Java 1 through Java 27. For class-by-class navigation, see the Feature Map. For feature maturity and repository representation, see the Status Matrix.

Java Release Package Highlights
1 Jan 1996 / Feb 1997 java01 Object-Oriented Foundations, Interfaces, Checked Exceptions, Threads, java.io, Inner Classes, Reflection, Serialization, JDBC, RMI, and JavaBeans examples
2 Dec 1998 java02 Collections Framework, Sorting, strictfp, Swing, Java 2D, and Security Policy examples
3 May 2000 java03 Dynamic Proxy, Timer, Shutdown Hooks and JNDI examples, Legacy Integration notes
4 Feb 2002 java04 Assertions, Regex, NIO, Logging, Chained Exceptions, XML, and Security examples, Preferences notes
5 Sep 2004 java05 Generics, Enhanced For Loop, Autoboxing, Enums, Varargs, Static Import, Annotations, Concurrency Utilities
6 Dec 2006 java06 Navigable Collections, Monitoring/MXBeans example, Scripting/Compiler/Console/Web-Service explanatory modules
7 Jul 2011 java07 Try-With-Resources, Multi-Catch, Diamond Operator, String Switch, NIO.2, Fork/Join, invokedynamic example
8 Mar 2014 java08 Lambdas, Streams, Optional, Method References, CompletableFuture, Default Methods, Date/Time API
9 Sep 2017 java09 Collection Factories, Optional/Stream Enhancements, Private Interface Methods, Process API, StackWalker, Module System example
10 Mar 2018 java10 var, Unmodifiable Collectors, Optional.orElseThrow()
11 Sep 2018 java11 String APIs, Files read/write string, HTTP Client, Predicate.not, lambda var, Optional.isEmpty
12 Mar 2019 java12 Switch Expressions preview, Collectors.teeing, String.indent, Files.mismatch, Compact Number Format
13 Sep 2019 java13 Text Blocks preview, switch yield preview, FileSystems.newFileSystem(Path)
14 Mar 2020 java14 Switch Expressions final, Helpful NullPointerExceptions, Records preview, Pattern Matching for instanceof preview
15 Sep 2020 java15 Text Blocks final, Sealed Classes preview, Hidden Classes example
16 Mar 2021 java16 Records final, Pattern Matching for instanceof final, Stream.toList, Unix-domain socket example
17 Sep 2021 java17 Sealed Classes final, Pattern Matching for switch preview, Random Generator API, HexFormat, Strong Encapsulation example
18 Mar 2022 java18 UTF-8 default charset, Simple Web Server example, JavaDoc snippets example, Internet-Address Resolution SPI example
19 Sep 2022 java19 Virtual Threads preview, Record Patterns preview, Pattern Matching switch preview, Structured Concurrency notes, FFM notes
20 Mar 2023 java20 Record Patterns second preview, Pattern Matching switch fourth preview, Vector API example, Scoped Values/Structured Concurrency/FFM notes
21 Sep 2023 java21 Virtual Threads final, Record Patterns final, Pattern Matching for switch final, Sequenced Collections, KEM example
22 Mar 2024 java22 Unnamed Variables and Patterns final, FFM executable native example, Stream Gatherers explanatory module, Class-File API explanatory module
23 Sep 2024 java23 Markdown Documentation Comments, Unsafe Memory-Access, and ZGC examples, preview notes
24 Mar 2025 java24 Stream Gatherers final, Class-File API, Security Manager/AOT/runtime modules, post-quantum crypto examples, preview bridge modules
25 Sep 2025 java25 Scoped Values final, Flexible Constructor Bodies final, Module Imports, KDF, Compact Source Files, JFR, AOT, and Object Headers examples, GC notes
26 Mar 2026 java26 HTTP/3, Final Field restrictions, Applet API removal, AOT Object Caching, PEM Encodings, Lazy Constants, Primitive Patterns, Structured Concurrency, and Vector API examples; G1 synchronization notes
27 Sep 2026 java27 Java 27: G1 and Compact Object Header defaults, post-quantum hybrid TLS, JFR redaction, and continuing preview examples for Lazy Constants, primitive patterns, Structured Concurrency, and PEM Encodings; Vector notes