This repository demonstrates modern Java features from Java 10 through Java 25.
trail/src/Main25.java- Java 25 features demonstrationtrail/src/StreamGatherers25.java- Java 25 Stream Gatherers API examplestrail/src/Main21.java- Java 21 features demonstrationtrail/src/Main.java- Java 17 and earlier featurestrail/src/Letters.java- Sealed class exampletrail/src/Hash.java- Sealed interface exampletrail/src/English.java- Text blocks and sealed types
- Flexible constructor bodies (JEP 482) - Statements before super() in constructors
 - Primitive type patterns (JEP 455) - Pattern matching with primitive types in switch and instanceof
 - Stream Gatherers - Custom intermediate stream operations (windowFixed, windowSliding, fold, mapConcurrent)
 - Enhanced pattern matching - Primitive patterns in switch expressions with guards
 
- Record patterns in switch - Pattern matching with records in switch expressions
 - Sequenced collections - New collection interfaces with defined ordering (addFirst, addLast, reversed)
 - Virtual threads - Lightweight threads for high-throughput concurrent applications
 
- Sealed classes - Control which classes can extend a class
 - Sealed interfaces - Control which classes can implement an interface
 - Switch expressions - Enhanced switch with arrow syntax
 - Pattern matching with instanceof - Type patterns in instanceof
 - var-args - Variable-length argument lists
 
- Text blocks - Multi-line string literals with proper formatting
 
- Type inference (var) - Local variable type inference
 
- Java 21 examples require Java 21 or later
 - Java 25 examples require Java 25 or later (or a compatible early-access build)