Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Java 20: tutte le novità

Tutte le principali novità di Java 20, a partire dal supporto per il pattern matching nelle espressioni switch
Java 20: tutte le novità
Tutte le principali novità di Java 20, a partire dal supporto per il pattern matching nelle espressioni switch
Link copiato negli appunti

Oracle ha reso disponibile Java 20, nuova versione di uno del linguaggi di programmazione più utilizzati al mondo. Non tutte le funzionalità integrate in questa release hanno completato la fase di sviluppo. In alcuni casi si tratta infatti di anteprime, in altri di feature in incubazione.

Pattern matching e Record Pattern

Relativamente alle novità dedicate al coding si segnala innanzitutto il supporto per il pattern matching negli switch. Grazie ad esso i livelli di produttività dovrebbero essere migliorati consentendo di testare un'espressione contro una serie di pattern, ciascuno con un'azione specifica. Ciò in modo da poter esprimere in modo conciso e sicuro query anche complesse orientate ai dati.

Sempre per quanto riguarda la produttività è utile segnalare l'introduzione del supporto ai Record Pattern. Ciò avviene estendendo il pattern matching per esprimere query dati più sofisticate. Java è stato quindi potenziato tramite record pattern per la destrutturazione dei record. Sia i record pattern che i type pattern possono essere annidati per permettere di accedere a forme di navigazione ed elaborazione dei dati più potenti e dichiarative.

Nuove API e gestione dei thread

Da segnalare anche l'anteprima di Foreign Function & Memory API, particolarmente utile quando si deve sviluppare un'applicazione destinata ad interagire con codici e informazioni esterni al runtime di Java. Si potrebbe poi rivelare particolarmente utile la Vector API, ancora in fase di incubazione. I calcoli scalari presentano infatti dei limiti in termini di prestazioni, mentre quelli vettoriali dovrebbero garantire maggiore affidabilità durante la compilazione quanto vengono eseguiti su CPU supportate.

In incubazione anche Structured Concurrency, grazie ad essa i task eseguiti in thread differenti dovrebbero essere eseguiti come una singola unità, semplificando notevolmente la programmazione multithreaded. Stesso discorso per i Virtual Threads, in anteprima, che dovrebbero richiedere un minor numero di risorse rendendo più semplice la creazione, la manutenzione il monitoraggio di applicazioni concorrenti a throughput elevato.

Meritano infine una citazione gli Scoped Value, in incubazione, con cui abilitare il data sharing di informazioni immutabili sia nei thread che tra i thread. Tale impostazione dovrebbe risultare più performante rispetto a quella basata sui thread locali, in particolare in presenza di un alto numero di thread virtuali.

Ti consigliamo anche