This document maps each Java release to the example and test classes that demonstrate or document its features.
Use this when you already know the Java version or feature name and want to jump directly to the code. For learning context, open the linked version README first. For feature maturity and JEP links, use status-matrix.md. For a shorter list of hands-on demonstrations, use practical-demos.md.
Learning notes: java01 README
| Feature | Example | Test |
|---|---|---|
| Object-oriented basics | ObjectOrientedBasicsExamples |
ObjectOrientedBasicsExamplesTest |
| Interfaces | InterfaceExamples |
InterfaceExamplesTest |
| Checked exceptions | ExceptionHandlingBasicsExamples |
ExceptionHandlingBasicsExamplesTest |
| Threads and Runnable | ThreadBasicsExamples |
ThreadBasicsExamplesTest |
java.io streams |
IoBasicsExamples |
IoBasicsExamplesTest |
| Inner classes | InnerClassExamples |
InnerClassExamplesTest |
| Reflection | reflection/ReflectionNotes |
ReflectionNotesTest |
| Serialization | serialization/SerializationNotes |
SerializationNotesTest |
| JDBC | jdbc/JdbcNotes |
JdbcNotesTest |
| RMI | rmi/RmiNotes |
RmiNotesTest |
| JavaBeans | javabeans/JavaBeansNotes |
JavaBeansNotesTest |
Learning notes: java02 README
| Feature | Example | Test |
|---|---|---|
| Collections Framework | CollectionsFrameworkExamples |
CollectionsFrameworkExamplesTest |
Sorting with Comparable and Comparator |
SortingExamples |
SortingExamplesTest |
strictfp |
strict_floating_point/StrictFloatingPointNotes |
StrictFloatingPointNotesTest |
| Swing | swing/SwingNotes |
SwingNotesTest |
| Java 2D | java2d/Java2DNotes |
Java2DNotesTest |
| Security policy | security/SecurityPolicyNotes |
SecurityPolicyNotesTest |
Learning notes: java03 README
| Feature | Example | Test |
|---|---|---|
| Dynamic proxy | DynamicProxyExamples |
DynamicProxyExamplesTest |
| Timer and TimerTask | TimerExamples |
TimerExamplesTest |
| Shutdown hooks | shutdown_hooks/ShutdownHookNotes |
ShutdownHookNotesTest |
| JNDI | jndi/JndiNotes |
JndiNotesTest |
| Legacy integration | legacy_integration/LegacyIntegrationNotes |
LegacyIntegrationNotesTest |
Learning notes: java04 README
| Feature | Example | Test |
|---|---|---|
| Assertions | assertions/AssertionNotes |
AssertionNotesTest |
| Regular expressions | RegexExamples |
RegexExamplesTest |
| NIO | NioExamples |
NioExamplesTest |
| Logging API | LoggingExamples |
LoggingExamplesTest |
| Chained exceptions | ChainedExceptionExamples |
ChainedExceptionExamplesTest |
| Preferences API | preferences/PreferencesNotes |
PreferencesNotesTest |
| XML/JAXP | xml/JaxpNotes |
JaxpNotesTest |
| Integrated security APIs | security/SecurityIntegrationNotes |
SecurityIntegrationNotesTest |
Learning notes: java05 README
| Feature | Example | Test |
|---|---|---|
| Generics | GenericsExamples |
GenericsExamplesTest |
| Enhanced for loop | EnhancedForLoopExamples |
EnhancedForLoopExamplesTest |
| Autoboxing and unboxing | AutoboxingExamples |
AutoboxingExamplesTest |
| Typesafe enums | EnumExamples |
EnumExamplesTest |
| Varargs | VarargsExamples |
VarargsExamplesTest |
| Static import | StaticImportExamples |
StaticImportExamplesTest |
| Annotations | AnnotationExamples |
AnnotationExamplesTest |
| Covariant return types | CovariantReturnExamples |
CovariantReturnExamplesTest |
| Formatted output | FormattingExamples |
FormattingExamplesTest |
| Concurrency utilities | ConcurrencyUtilitiesExamples |
ConcurrencyUtilitiesExamplesTest |
Learning notes: java06 README
| Feature | Example | Test |
|---|---|---|
| Navigable collections and deques | NavigableCollectionExamples |
NavigableCollectionExamplesTest |
| Scripting support | scripting/ScriptingSupportNotes |
ScriptingSupportNotesTest |
| Compiler API | compiler_api/CompilerApiNotes |
CompilerApiNotesTest |
| Console API | console_api/ConsoleApiNotes |
ConsoleApiNotesTest |
| Monitoring and management | monitoring_management/MonitoringManagementNotes |
MonitoringManagementNotesTest |
| Web-service support | web_services/WebServiceSupportNotes |
WebServiceSupportNotesTest |
Learning notes: java07 README
| Feature | Example | Test |
|---|---|---|
| Try-with-resources | TryWithResourcesStatementExamples |
TryWithResourcesStatementExamplesTest |
| Multi-catch and precise rethrow | ExceptionHandlingExamples |
ExceptionHandlingExamplesTest |
| Diamond operator | DiamondOperatorExamples |
DiamondOperatorExamplesTest |
| Strings in switch | StringSwitchExamples |
StringSwitchExamplesTest |
| Binary literals and numeric underscores | NumericLiteralExamples |
NumericLiteralExamplesTest |
| NIO.2 | Nio2Examples |
Nio2ExamplesTest |
| Fork/join framework | ForkJoinExamples |
ForkJoinExamplesTest |
invokedynamic |
invokedynamic/InvokeDynamicNotes |
InvokeDynamicNotesTest |
Learning notes: java08 README
| Feature | Example | Test |
|---|---|---|
| Lambdas | LambdaExamples |
LambdaExamplesTest |
| Streams | StreamExamples |
StreamExamplesTest |
| Optional | OptionalExamples |
OptionalExamplesTest |
| Method references | MethodReferenceExamples |
MethodReferenceExamplesTest |
| CompletableFuture | CompletableFutureExamples |
CompletableFutureExamplesTest |
| Default methods | DefaultMethodExamples |
DefaultMethodExamplesTest |
| Date/Time API | DateTimeApiExamples |
DateTimeApiExamplesTest |
Learning notes: java09 README
| Feature | Example | Test |
|---|---|---|
| Collection factories | CollectionFactoryExamples |
CollectionFactoryExamplesTest |
| Optional enhancements | OptionalEnhancementExamples |
OptionalEnhancementExamplesTest |
| Stream enhancements | StreamEnhancementExamples |
StreamEnhancementExamplesTest |
| Private interface methods | PrivateInterfaceMethodExamples |
PrivateInterfaceMethodExamplesTest |
| Try-with-resources improvement | TryWithResourcesExamples |
TryWithResourcesExamplesTest |
| Process API | ProcessApiExamples |
ProcessApiExamplesTest |
| StackWalker | StackWalkerExamples |
StackWalkerExamplesTest |
| Module system | ModuleSystemNotes |
ModuleSystemNotesTest |
Learning notes: java10 README
| Feature | Example | Test |
|---|---|---|
| Local variable type inference | LocalVariableTypeInferenceExamples |
LocalVariableTypeInferenceExamplesTest |
| Unmodifiable collectors | UnmodifiableCollectorsExamples |
UnmodifiableCollectorsExamplesTest |
Optional.orElseThrow() |
OptionalOrElseThrowExamples |
OptionalOrElseThrowExamplesTest |
Learning notes: java11 README
| Feature | Example | Test |
|---|---|---|
| String API additions | StringApiExamples |
StringApiExamplesTest |
| Files read/write string | FilesApiExamples |
FilesApiExamplesTest |
| HTTP Client | HttpClientExamples |
HttpClientExamplesTest |
Predicate.not |
PredicateNotExamples |
PredicateNotExamplesTest |
Lambda var |
LambdaVarExamples |
LambdaVarExamplesTest |
Optional.isEmpty |
OptionalIsEmptyExamples |
OptionalIsEmptyExamplesTest |
Learning notes: java12 README
| Feature | Example | Test |
|---|---|---|
| Switch expressions preview | SwitchExpressionPreviewExamples |
SwitchExpressionPreviewExamplesTest |
| Teeing collector | TeeingCollectorExamples |
TeeingCollectorExamplesTest |
String.indent |
StringIndentExamples |
StringIndentExamplesTest |
Files.mismatch |
FilesMismatchExamples |
FilesMismatchExamplesTest |
| Compact number formatting | CompactNumberFormatExamples |
CompactNumberFormatExamplesTest |
Learning notes: java13 README
| Feature | Example | Test |
|---|---|---|
| Text blocks preview | TextBlockPreviewExamples |
TextBlockPreviewExamplesTest |
Switch yield preview |
SwitchYieldPreviewExamples |
SwitchYieldPreviewExamplesTest |
FileSystems.newFileSystem(Path) |
FileSystemsNewFileSystemExamples |
FileSystemsNewFileSystemExamplesTest |
Learning notes: java14 README
| Feature | Example | Test |
|---|---|---|
| Switch expressions final | SwitchExpressionExamples |
SwitchExpressionExamplesTest |
| Helpful NullPointerExceptions | HelpfulNullPointerExceptionExamples |
HelpfulNullPointerExceptionExamplesTest |
| Records preview | RecordPreviewExamples |
RecordPreviewExamplesTest |
Pattern matching for instanceof preview |
PatternMatchingInstanceofPreviewExamples |
PatternMatchingInstanceofPreviewExamplesTest |
Learning notes: java15 README
| Feature | Example | Test |
|---|---|---|
| Text blocks final | TextBlockExamples |
TextBlockExamplesTest |
| Sealed classes preview | SealedClassesPreviewExamples |
SealedClassesPreviewExamplesTest |
| Hidden classes | HiddenClassesNotes |
HiddenClassesNotesTest |
Learning notes: java16 README
| Feature | Example | Test |
|---|---|---|
| Records final | RecordExamples |
RecordExamplesTest |
Pattern matching for instanceof final |
PatternMatchingInstanceofExamples |
PatternMatchingInstanceofExamplesTest |
Stream.toList() |
StreamToListExamples |
StreamToListExamplesTest |
| Unix-domain socket channels | unix_domain_socket/UnixDomainSocketChannelNotes |
UnixDomainSocketChannelNotesTest |
| Vector API first incubator | java16 README | No dedicated test |
| Foreign Linker API incubator | java16 README | No dedicated test |
| Foreign-Memory Access API third incubator | java16 README | No dedicated test |
Learning notes: java17 README
| Feature | Example | Test |
|---|---|---|
| Sealed classes final | SealedClassesExamples |
SealedClassesExamplesTest |
| Pattern matching for switch preview | PatternMatchingSwitchPreviewExamples |
PatternMatchingSwitchPreviewExamplesTest |
| Random Generator API | RandomGeneratorExamples |
RandomGeneratorExamplesTest |
HexFormat |
HexFormatExamples |
HexFormatExamplesTest |
| Strong encapsulation | strong_encapsulation |
StrongEncapsulationNotesTest |
Learning notes: java18 README
| Feature | Example | Test |
|---|---|---|
| UTF-8 default charset | Utf8DefaultCharsetExamples |
Utf8DefaultCharsetExamplesTest |
| Simple Web Server | SimpleStaticFileServer |
SimpleStaticFileServerTest |
| JavaDoc snippets | JavaDocSnippetExamples |
JavaDocSnippetExamplesTest |
| Internet-Address Resolution SPI | inet_address_resolution |
InetAddressResolutionNotesTest |
Learning notes: java19 README
| Feature | Example | Test |
|---|---|---|
| Virtual threads preview | VirtualThreadsPreviewExamples |
VirtualThreadsPreviewExamplesTest |
| Record patterns preview | RecordPatternsPreviewExamples |
RecordPatternsPreviewExamplesTest |
| Pattern matching for switch preview | PatternMatchingSwitchPreviewExamples |
PatternMatchingSwitchPreviewExamplesTest |
| Structured concurrency incubator | StructuredConcurrencyPreviewNotes |
StructuredConcurrencyPreviewNotesTest |
| Foreign Function and Memory API | ForeignFunctionMemoryApiPreviewNotes |
ForeignFunctionMemoryApiPreviewNotesTest |
Learning notes: java20 README
| Feature | Example | Test |
|---|---|---|
| Record patterns second preview | RecordPatternsSecondPreviewExamples |
RecordPatternsSecondPreviewExamplesTest |
| Pattern matching for switch fourth preview | PatternMatchingSwitchFourthPreviewExamples |
PatternMatchingSwitchFourthPreviewExamplesTest |
| Virtual threads second preview | VirtualThreadsSecondPreviewNotes |
VirtualThreadsSecondPreviewNotesTest |
| Scoped values incubator | ScopedValuesIncubatorNotes |
ScopedValuesIncubatorNotesTest |
| Structured concurrency second incubator | StructuredConcurrencySecondIncubatorNotes |
StructuredConcurrencySecondIncubatorNotesTest |
| Foreign Function and Memory API second preview | ForeignFunctionMemorySecondPreviewNotes |
ForeignFunctionMemorySecondPreviewNotesTest |
| Vector API fifth incubator | VectorApiFifthIncubatorNotes |
VectorApiFifthIncubatorNotesTest |
Learning notes: java21 README
| Feature | Example | Test |
|---|---|---|
| Virtual threads final | VirtualThreadsExamples |
VirtualThreadsExamplesTest |
| Record patterns final | RecordPatternsExamples |
RecordPatternsExamplesTest |
| Pattern matching for switch final | PatternMatchingSwitchExamples |
PatternMatchingSwitchExamplesTest |
| Sequenced collections final | SequencedCollectionsExamples |
SequencedCollectionsExamplesTest |
| Unnamed patterns and variables preview | UnnamedPatternsVariablesPreviewExamples |
UnnamedPatternsVariablesPreviewExamplesTest |
| Key Encapsulation Mechanism API | KeyEncapsulationExchange |
KeyEncapsulationExchangeTest |
| Scoped values preview | ScopedValuesPreviewNotes |
ScopedValuesPreviewNotesTest |
| Structured concurrency preview | StructuredConcurrencyPreviewNotes |
StructuredConcurrencyPreviewNotesTest |
Learning notes: java22 README
| Feature | Example | Test |
|---|---|---|
| Unnamed variables and patterns final | UnnamedVariablesPatternsExamples |
UnnamedVariablesPatternsExamplesTest |
Statements before super(...) preview |
StatementsBeforeSuperPreviewNotes |
StatementsBeforeSuperPreviewNotesTest |
| Stream Gatherers preview | StreamGatherersPreviewNotes |
StreamGatherersPreviewNotesTest |
| Foreign Function and Memory API final | NativeStringParser, NativeStringLength |
ForeignFunctionExamplesTest |
| Multi-file source launcher final | LaunchMultiFileSourceProgramsNotes |
LaunchMultiFileSourceProgramsNotesTest |
| Class-File API preview | ClassFileApiPreviewNotes |
ClassFileApiPreviewNotesTest |
| Scoped values second preview | ScopedValuesSecondPreviewNotes |
ScopedValuesSecondPreviewNotesTest |
| Structured concurrency second preview | StructuredConcurrencySecondPreviewNotes |
StructuredConcurrencySecondPreviewNotesTest |
Learning notes: java23 README
Learning notes: java24 README
Learning notes: java25 README
| Feature | Example | Test |
|---|---|---|
| Scoped values final | ScopedValuesExamples |
ScopedValuesExamplesTest |
| Flexible constructor bodies final | FlexibleConstructorBodiesExamples |
FlexibleConstructorBodiesExamplesTest |
| Module import declarations final | ModuleImportDeclarationsNotes |
ModuleImportDeclarationsNotesTest |
| Compact source files final | CompactSourceFilesNotes |
CompactSourceFilesNotesTest |
| Key Derivation Function API final | HkdfKeyDerivationExample |
HkdfKeyDerivationExampleTest |
| Primitive patterns third preview | PrimitivePatternsThirdPreviewNotes |
PrimitivePatternsThirdPreviewNotesTest |
| Stable values preview | StableValuesPreviewNotes |
StableValuesPreviewNotesTest |
| PEM encodings preview | PemEncodingsPreviewNotes |
PemEncodingsPreviewNotesTest |
| Structured concurrency fifth preview | StructuredConcurrencyFifthPreviewNotes |
StructuredConcurrencyFifthPreviewNotesTest |
| Vector API tenth incubator | VectorApiTenthIncubatorNotes |
VectorApiTenthIncubatorNotesTest |
| AOT command-line ergonomics | AotCommandLineErgonomicsNotes |
AotCommandLineErgonomicsNotesTest |
| JFR enhancements | JfrEnhancementsNotes |
JfrEnhancementsNotesTest |
| Compact object headers | CompactObjectHeadersNotes |
CompactObjectHeadersNotesTest |
| Generational Shenandoah | GenerationalShenandoahNotes |
GenerationalShenandoahNotesTest |