Oracle e i contributor del progetto creato da James Gosling hanno rilasciato Java 19, aggiornamento del linguaggio di programmazione che arriva a 6 mesi di distanza dalla release precedente nel pieno rispetto della politica di avvicendamento tra le versioni oggi osservata dagli sviluppatori.
Le novità di Java 19 riguardano in particolare la sicurezza, le prestazioni e la produttività, con particolare attenzione per il nuovo JDK (Java Development Kit) che presenta 7 JEP (JDK Enhancement Proposal) per il momento sotto forma di preview o in fase di incubazione.
Record Patterns
Associati alla JEP 405, permettono la nidificazione dei record pattern e dei type pattern con lo scopo di realizzare dei form componibili per l'elaborazione e la consultazione dei dati. Vengono così migliorate le query per il pattern matching.
Pattern Matching for Switch
La JEP 427 riguarda nello specifico il pattern matching di dichiarazioni ed espressioni consentendo di eseguire test in base a schemi differenti. A guadagnarne dovrebbe essere in particolare la sintassi delle query che potrebbe risultare molto più contenuta.
Foreign Function and Memory API
Correlata alla JEP 424, introduce una maggiore interoperabilità con elementi collocati esternamente alla runtime di Java. L'interfaccia dovrebbe garantire un elevato livello di sicurezza, e un guadagno in termini di prestazioni, anche quando si accede a memorie non gestite dalla JVM e vengono richiamate delle funzioni esterne ad essa.
Vector API
La JEP 426 prevede performance più elevate rispetto ai calcoli scalari equivalenti, supportando calcoli vettoriali in grado di compilarsi in fase di esecuzione con un elevato livello di affidabilità, per le istruzioni vettoriali sulle CPU supportate.
Linux/RISC-V Port
Relativamente alle porte, la JEP 422 dovrebbe consentire implementazioni Linux/RISC-V più semplici con la sua integrazione nel repository principale del JDK.
Virtual Thread
Con la JEP 425 i thread virtuali permettono di risolvere più facilmente i problemi di programmazione, di eseguire debug e creare il profilo delle applicazioni concorrenti ad alto throughput con i tool e le tecniche JDK già disponibili.
Structured Concurrency
Una JEP (la 428) che dovrebbe rendere più semplice la gestione degli errori e il loro annullamento, l'obbiettivo è quello di aumentare l'affidabilità e migliorare l'osservabilità facilitando la programmazione multithreaded e trattando più task in esecuzione in thread differnti come un'unica unità di lavoro.