Skip to content

Latest commit

 

History

29 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

New Features of Java

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).


Before Java 8

Notes, FAQ

Everything Java 8 builds on, from JDK 1.0 to Java SE 7.

Java Language Features:

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)

JVM (Java Virtual Machine) Features:

1. HotSpot JVM (1.3)
2. Java Memory Model, JSR 133 (5.0)
3. Biased Locking, Escape Analysis (6)
4. invokedynamic, JSR 292 (7)

Java Standards:

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)

Java 8 (LTS)

Oracle, OpenJDK1, OpenJDK2 — Notes, FAQ

  • Released on March 2014
  • Supported until December 2030

Java Language Features:

1. Lambda Expressions
2. Stream API
3. Functional Interfaces
4. Default Methods in Interfaces
5. Method References
6. Method Parameter Reflection

JVM (Java Virtual Machine) Features:

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)

Java Standards:

1. Date and Time API (JSR 310)
2. Optional Class
3. CompletableFuture
4. Parallel Array Sorting
5. Base64 Encoding and Decoding
6. Compact Profiles

Java 9

Oracle, OpenJDK — Notes, FAQ

  • Released on September 2017

Java Language Features:

1. Module System (Project Jigsaw)
2. JShell
3. Private Methods in Interfaces

JVM (Java Virtual Machine) Features:

1. Ahead-of-Time Compilation (AOT)

Java Standards:

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

Java 10

Oracle, OpenJDK — Notes, FAQ

  • Released on March 2018

Java Language Features:

1. Local-Variable Type Inference (var)

JVM (Java Virtual Machine) Features:

1. Consolidation of G1 Garbage Collector

Java Standards:

1. Application Class-Data Sharing
2. Parallel Full GC for G1
3. Experimental Java-Based JIT Compiler

Java 11 (LTS)

Oracle, OpenJDK — Notes, FAQ

  • Released on September 2018
  • Supported until January 2032

Java Language Features:

1. Local-Variable Syntax for Lambda Parameters

JVM (Java Virtual Machine) Features:

1. Epsilon Garbage Collector

Java Standards:

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

Java 12

Oracle, OpenJDK — Notes

  • Released on March 2019

Java Language Features:

1. Switch Expressions (Preview)
2. Pattern Matching for instanceof (Preview)

JVM (Java Virtual Machine) Features:

1. Shenandoah Garbage Collector (Experimental)
2. Abortable Mixed Collections for G1
3. Default CDS Archives
4. One AArch64 Port, Not Two
5. Microbenchmark Suite

Java Standards:

1. String::indent, String::transform
2. Files::mismatch
3. Teeing Collector
4. Compact Number Formatting
5. JVM Constants API

Java 13

Oracle, OpenJDK — Notes

  • Released on September 2019

Java 14

Oracle, OpenJDK — Notes

  • Released on March 2020

Java 15

Oracle, OpenJDK — Notes

  • Released on September 2020

Java 16

Oracle, OpenJDK — Notes

  • Released on March 2021

Java 17 (LTS)

Oracle, OpenJDK — Notes

  • Released on September 2021
  • Supported until September 2029

Java 18

Oracle, OpenJDK — Notes

  • Released on March 2022

Java 19

Oracle, OpenJDK — Notes

  • Released on September 2022

Java 20

Oracle, OpenJDK — Notes

  • Released on March 2023

Java 21 (LTS)

Oracle, OpenJDK — Notes

  • Released on September 2023
  • Supported until September 2031

Java 22

Oracle, OpenJDK — Notes

  • Released on March 2024

Java 23

Oracle, OpenJDK — Notes

  • Released on September 2024

Java 24

Oracle, OpenJDK — Notes

  • Released on March 2025

Java 25 (LTS)

Oracle, OpenJDK — Notes

  • Released on September 2025
  • Supported until September 2033

Java 26

Oracle, OpenJDK — Notes

  • Released on March 2026

reference: Wikipedia , java.com