Project 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.
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.
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”.
Switch Expressions (preview) – switch
poate returna valori:
int num = switch(day) { case MONDAY -> 1; default -> 0; };
Shenandoah GC (experimental) – GC cu pauze foarte scurte.
Text Blocks (preview) – scrii stringuri multiliniar:
String html = """ <html> <body>Hello</body> </html>""";
Switch expressions îmbunătățite.
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
).
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.
Records devin oficiale.
Pattern Matching instanceof
devine standard.
Vector API (incubator) – performanță pentru calcule numerice.
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.
Simple Web Server pentru prototipuri (linie de comandă).
UTF-8 by default → standardizarea encodării.
Code snippets în JavaDoc.
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).
Scoped Values (preview) – alternativă modernă la ThreadLocal
.
Record Patterns îmbunătățite.
Continuare la Loom și Panama.
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.
Statements before super(...) în constructor.
Unstoppable threads improvements.
Vector API și Foreign Function & Memory API continuă.
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).
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).