This is a repo about Java standard edition features:
Every release has its own folder under src/, holding the feature notes (README.md), runnable demo classes, and
interview questions (FAQ.md).
Everything Java 8 builds on, from JDK 1.0 to Java SE 7.
1. Inner, Local and Anonymous Classes (1.1)
2. Generics (5.0)
3. Enums (5.0)
4. Annotations (5.0)
5. Autoboxing / Unboxing (5.0)
6. Varargs, for-each, Static Imports (5.0)
7. Covariant Return Types (5.0)
8. Diamond Operator, try-with-resources, Multi-catch, Strings in switch (7)
9. Binary Literals and Underscores in Literals (7)
1. HotSpot JVM (1.3)
2. Java Memory Model, JSR 133 (5.0)
3. Biased Locking, Escape Analysis (6)
4. invokedynamic, JSR 292 (7)
1. Collections Framework (1.2)
2. Regular Expressions and NIO (1.4)
3. Chained Exceptions and assert (1.4)
4. java.util.concurrent, JSR 166 (5.0)
5. StringBuilder (5.0)
6. java.util.Objects (7)
7. NIO.2 - java.nio.file (7)
8. Fork/Join Framework (7)
Oracle, OpenJDK1, OpenJDK2 — Notes, FAQ
- Released on March 2014
- Supported until December 2030
1. Lambda Expressions
2. Stream API
3. Functional Interfaces
4. Default Methods in Interfaces
5. Method References
6. Method Parameter Reflection
1. PermGen Space Replaced with Metaspace
2. Parallel Garbage Collector Enhancements
3. Nashorn JavaScript Engine
4. Type Annotations
5. Class-File Format Enhancements (JSR 292)
1. Date and Time API (JSR 310)
2. Optional Class
3. CompletableFuture
4. Parallel Array Sorting
5. Base64 Encoding and Decoding
6. Compact Profiles
- Released on September 2017
1. Module System (Project Jigsaw)
2. JShell
3. Private Methods in Interfaces
1. Ahead-of-Time Compilation (AOT)
1. Process API Updates
2. HTTP/2 Client
3. Improved Stream API
4. Multi-Release JAR Files
5. Collection Factory Methods
6. Reactive Streams API (Flow API)
7. Stack-Walking API
8. Unified JVM Logging
- Released on March 2018
1. Local-Variable Type Inference (var)
1. Consolidation of G1 Garbage Collector
1. Application Class-Data Sharing
2. Parallel Full GC for G1
3. Experimental Java-Based JIT Compiler
- Released on September 2018
- Supported until January 2032
1. Local-Variable Syntax for Lambda Parameters
1. Epsilon Garbage Collector
1. HTTP Client (Standard)
2. Launch Single-File Source-Code Programs
3. ZGC (Experimental)
4. Flight Recorder (JFR) and Mission Control
5. Nest-Based Access Control
6. Dynamic Class-File Constants
- Released on March 2019
1. Switch Expressions (Preview)
2. Pattern Matching for instanceof (Preview)
1. Shenandoah Garbage Collector (Experimental)
2. Abortable Mixed Collections for G1
3. Default CDS Archives
4. One AArch64 Port, Not Two
5. Microbenchmark Suite
1. String::indent, String::transform
2. Files::mismatch
3. Teeing Collector
4. Compact Number Formatting
5. JVM Constants API
- Released on September 2019
- Released on March 2020
- Released on September 2020
- Released on March 2021
- Released on September 2021
- Supported until September 2029
- Released on March 2022
- Released on September 2022
- Released on March 2023
- Released on September 2023
- Supported until September 2031
- Released on March 2024
- Released on September 2024
- Released on March 2025
- Released on September 2025
- Supported until September 2033
- Released on March 2026