JDK 9 (2017) față de JDK 8Project Jigsaw (Module System) – introducerea modulelor (module-info.java), pentru a organiza aplicațiile mari.
➝ Exemplu: requires java.sql; în fișierul module-info.java.
JShell (REPL) – primul „laborator” Java direct în terminal, unde poți testa cod rapid fără clasă main.
API Stream îmbunătățit – metode noi ca takeWhile, dropWhile, iterate.
Interfața Collection → metodă of() pentru a crea colecții imutabile.
JDK 10 (2018)Local-variable type inference (var) – poți scrie:
var list = new ArrayList<String>();
Garbage Collector Improvements – introducere G1 GC ca default.
Application Class-Data Sharing → pornește aplicațiile mai rapid.
JDK 11 (2018, LTS)String API nou – metode: isBlank(), lines(), repeat().
HTTP Client API (standard, finalizat după preview în JDK 9/10).
Eliminări: JavaFX și JEE modules (mutate în afara JDK).
Nest-based access control → pentru acces între clase „interioare”.
JDK 12 (2019)Switch Expressions (preview) – switch poate returna valori:
int num = switch(day) { case MONDAY -> 1; default -> 0; };
Shenandoah GC (experimental) – GC cu pauze foarte scurte.
JDK 13 (2019)Text Blocks (preview) – scrii stringuri multiliniar:
String html = """ <html> <body>Hello</body> </html>""";
Switch expressions îmbunătățite.
JDK 14 (2020)Records (preview) – clase simple pentru date:
record Point(int x, int y) {}
Pattern Matching pentru instanceof (preview):
if (obj instanceof String s) { System.out.println(s.length()); }
JEP 358: Helpful NullPointerExceptions (arată exact unde a fost null).
JDK 15 (2020)Sealed Classes (preview) – controlezi ce clase pot extinde o clasă:
sealed class Shape permits Circle, Square {}
Text Blocks devin standard.
Hidden Classes – utile pentru frameworks.
JDK 16 (2021)Records devin oficiale.
Pattern Matching instanceof devine standard.
Vector API (incubator) – performanță pentru calcule numerice.
JDK 17 (2021, LTS)Sealed Classes oficiale.
Pattern Matching pentru switch (preview).
JEP 356: Pseudo-Random Number Generators – API nou pentru RNG.
Noi GCs: ZGC și Shenandoah devin „production-ready”.
Security: Strong encapsulation pentru JDK internals.
JDK 18 (2022)Simple Web Server pentru prototipuri (linie de comandă).
UTF-8 by default → standardizarea encodării.
Code snippets în JavaDoc.
JDK 19 (2022)Virtual Threads (preview, Project Loom) – mii/milioane de fire ușoare.
Record Patterns (preview).
Pattern Matching for switch (preview).
Foreign Function & Memory API (preview, Project Panama).
JDK 20 (2023)Scoped Values (preview) – alternativă modernă la ThreadLocal.
Record Patterns îmbunătățite.
Continuare la Loom și Panama.
JDK 21 (2023, LTS)Virtual Threads oficiale.
String Templates (preview) – interpolare stringuri:
String name = "Ana"; String msg = STR."Hello \{name}";
Pattern Matching pentru switch oficial.
Sequenced Collections – colecții ordonate cu API unificat.
Generational ZGC.
JDK 22 (2024)Statements before super(...) în constructor.
Unstoppable threads improvements.
Vector API și Foreign Function & Memory API continuă.
JDK 23 (2024)Stream Gatherers API (incubator) – extinde Stream cu operații noi.
Class-file API (preview) – manipulare ușoară a bytecode-ului.
Primul preview al Value Objects (Valhalla).
JDK 24 (2025)Valhalla Progress – value objects continuă în preview.
String Templates îmbunătățite (preview 2/3).
Performance improvements la virtual threads.
API-uri mai stabile pentru Panama (Foreign Memory/Function).