Comunicato stampa

Oracle rilascia Java 24

La nuova release offre 24 JDK Enhancement Proposal che aiutano gli sviluppatori a massimizzare la produttività e migliorano il linguaggio Java.

I miglioramenti alle prestazioni, alla stabilità e alla sicurezza della piattaforma aiutano le organizzazioni a crescere più rapidamente

In occasione della conferenza Java One 2025 presentate nuove funzionalità a supporto dell’Intelligenza Artificiale e della crittografia post-quantum

Austin (USA) / Milano—18 marzo 2025
Java24

Oracle ha annunciato, in occasione della conferenza Java One che si è tenuta nei giorni scorsi a Redwood Shores (California) negli Stati Uniti, la disponibilità di Java 24, l'ultima versione del linguaggio di programmazione e della piattaforma di sviluppo numero uno al mondo.

Java 24 (Oracle JDK 24) offre migliaia di miglioramenti che aiutano gli sviluppatori a massimizzare la produttività e promuovere l'innovazione. Inoltre, le maggiori prestazioni, stabilità e sicurezza della piattaforma aiutano le organizzazioni a crescere più rapidamente.

"A fine anno Java celebrerà il suo trentesimo anniversario e continua a espandersi, per rispondere alle esigenze in continua evoluzione degli sviluppatori con nuove funzionalità che supportano lo sviluppo di applicazioni basate sull'intelligenza artificiale", ha dichiarato Arnal Dayaratna, Research Vice President, Software Development di IDC. "L'ampia gamma di funzionalità della nuova versione contribuirà a una maggiore produttività: gli sviluppatori potranno creare applicazioni ricche di funzionalità per le loro organizzazioni e clienti, in modo più rapido ed efficiente. Java 24 evidenzia come questo linguaggio non tema rivali quando si tratta di sviluppare applicazioni mission-critical di livello enterprise su vasta scala."

"Negli ultimi 30 anni, Java ha offerto agli sviluppatori una piattaforma completa per creare e distribuire applicazioni destinate a moltissimi scenari di utilizzo diversi", ha dichiarato Georges Saab, Senior Vice President, Oracle Java Platform e Chair del Board di OpenJDK. "Questa release offre più di 20 nuove funzionalità che coprono ogni aspetto di Java, come l'intelligenza artificiale e la crittografia post-quantum, così da offrire agli sviluppatori tutti gli strumenti di cui hanno bisogno per creare applicazioni innovative e basate su AI. Siamo entusiasti di lavorare con la community globale di Java per continuare a fornire un flusso costante di nuove funzionalità da rilasciare a cadenza regolare ogni sei mesi”.

Funzionalità nuove del linguaggio

  • JEP 488: Primitive Types in Patterns, instanceof, and switch (seconda anteprima): aiuta gli sviluppatori ad aumentare la produttività della programmazione Java rendendo il linguaggio più uniforme ed espressivo. Questa funzione consente agli sviluppatori di migliorare la corrispondenza dei pattern rimuovendo le restrizioni relative ai tipi primitivi che incontrano quando utilizzano la corrispondenza dei pattern, instanceof e switch. Consente inoltre di utilizzare pattern di tipo primitivo in tutti i contesti di pattern ed estende instanceof e switch a tutti i tipi primitivi. Gli sviluppatori di applicazioni che integrano l'inferenza AI troveranno particolarmente utile il supporto dei tipi primitivi.
  • JEP 492: Flexible Constructor Bodies (terza anteprima): aiuta gli sviluppatori a migliorare l'affidabilità del codice attraverso l'introduzione di due fasi di prologo ed epilogo distinte in un constructor body. In questo modo gli sviluppatori hanno la possibilità di inserire in modo più naturale la logica che attualmente devono inserire nei metodi statici ausiliari, nei costruttori intermedi ausiliari o negli argomenti dei costruttori. Inoltre, continua a garantire che il codice contenuto in un costruttore di sottoclassi non possa interferire con la creazione delle istanze di superclassi, aumentando l'affidabilità delle classi in caso di ovverride dei metodi.
  • JEP 494: Module Import Declarations (seconda anteprima): aiuta gli sviluppatori a migliorare la produttività consentendo loro di importare in modo facile e veloce tutti i pacchetti esportati da un modulo, senza richiedere che anche il codice di importazione si trovi in un modulo. Questo semplifica il riutilizzo delle librerie modulari da parte di tutti gli sviluppatori e consente ai principianti di utilizzare più facilmente librerie di terze parti e classi Java fondamentali, senza preoccuparsi del punto in cui si trovano nella gerarchia di pacchetti. Questa funzione offre inoltre diversi vantaggi agli sviluppatori che desiderano integrare rapidamente la business logic con le chiamate all'inferenza AI nativa, alle librerie o ai servizi.
  • JEP 495: Simple Source Files and Instance Main Methods (quarta anteprima): aiuta gli studenti che stanno imparando a programmare in Java a scrivere i loro primi programmi, anche se non comprendono le funzioni del linguaggio di vasta portata, per aiutarli ad apprendere. Questo permette ai loro docenti e istruttori di introdurre i concetti gradualmente; gli studenti possono scrivere dichiarazioni semplificate per i programmi a classe singola ed espandere senza problemi i loro programmi con funzionalità più avanzate a mano a mano che sviluppano nuove competenze. Inoltre, con questo strumento anche gli sviluppatori Java esperti possono scrivere piccoli programmi in modo sintetico ed efficiente, senza dover utilizzare strumenti destinati a progetti di maggiori dimensioni.

Librerie

  • JEP 485: Stream Gatherers: aiuta gli sviluppatori a leggere, scrivere e gestire il codice Java in modo più efficiente, migliorando lo Stream API per supportare operazioni intermedie personalizzate. In questo modo le pipeline di streaming possono trasformare i dati in modi che sarebbero difficili da implementare con le operazioni intermedie integrate preesistenti.
  • JEP 484: Class-File API: aiuta gli sviluppatori a migliorare la produttività, fornendo un'API standard per l'analisi, la generazione e la trasformazione dei file di classe Java e tracciando il formato dei file di classe Java definito dalla specifica Java Virtual Machine.
  • JEP 487: Scoped Values (quarta anteprima): aiuta gli sviluppatori ad aumentare la facilità d'uso, la comprensibilità, le prestazioni e l'affidabilità dei loro progetti, consentendo la condivisione di dati immutabili all'interno dei thread e fra thread diversi.
  • JEP 489: Vector API (nona versione incubator): aiuta gli sviluppatori a migliorare la produttività, introducendo un'API per esprimere calcoli vettoriali che si compilano in modo affidabile in fase di esecuzione per le istruzioni vettoriali sulle architetture di CPU supportate. Di conseguenza, gli sviluppatori possono ottenere prestazioni superiori a quelle dei calcoli scalari equivalenti, spesso utilizzati negli scenari di inferenza e calcolo dell'intelligenza artificiale.
  • JEP 499: Structured Concurrency (quarta anteprima): aiuta gli sviluppatori a migliorare la manutenzione, l'affidabilità e l'osservabilità del codice multithread, semplificando la programmazione concorrente tramite una nuova API per la concorrenza strutturata. Gestendo come una singola unità di lavoro i gruppi di attività correlate eseguiti all'interno di thread diversi, la concorrenza strutturata contribuisce a eliminare i rischi più comuni derivanti da operazioni di annullamento e chiusura, come le perdite di thread e i ritardi di annullamento.

Librerie di security

  • JEP 478: Key Derivation Function API (anteprima): aiuta gli sviluppatori a prepararsi per gli ambienti di elaborazione quantistica emergenti, offrendo la sicurezza della crittografia per i dati in transito, per migliorare la riservatezza e l'integrità della comunicazione.
  • JEP 496: Quantum-Resistant Module-Lattice-Based Key Encapsulation Mechanism: contribuisce ad aumentare la sicurezza delle applicazioni Java, fornendo un'implementazione del meccanismo quantum-resistant Module-Lattice-Based-Key-Encapsulation Mechanism (ML-KEM). Questa funzione è un passo importante per la preparazione e la successiva fornitura del supporto per la crittografia post-quantum (PQC) nella piattaforma Java, poiché utilizza meccanismi di incapsulamento delle chiavi per proteggere le chiavi simmetriche sui canali di comunicazione non sicuri che utilizzano la crittografia a chiave pubblica.
  • JEP 497: Quantum-Resistant Module-Lattice-Based Digital Signature Algorithm: contribuisce ad aumentare la sicurezza delle applicazioni Java, fornendo un'implementazione del meccanismo Module-Lattice-Based Digital Signature Algorithm (ML-DSA) resistente agli attacchi dei computer quantistici. Come JEP 496, questa funzione costituisce un passo importante per la preparazione e la successiva eventuale fornitura del supporto di PQC nella piattaforma Java, poiché utilizza le firme digitali per rilevare le modifiche non autorizzate ai dati e per autenticare l'identità dei firmatari. Il meccanismo ML-DSA è stato progettato per fornire una protezione dagli attacchi informatici futuri in ambito quantum computing ed è stato standardizzato dal NIST (National Institute of Standards and Technology) statunitense, nello standard FIPS 204.

Strumenti

  • JEP 493: Linking Run-Time Images without JMODs: aiuta gli sviluppatori ad aumentare l'efficienza, consentendo allo strumento jlink di creare immagini di runtime personalizzate senza utilizzare i file JMOD del JDK, con la possibilità di ridurre le dimensioni del JDK del 25% circa. Di conseguenza, un'immagine di runtime può essere collegata dai moduli indipendentemente dal fatto che tali moduli siano file JMOD standalone, file JAR modulari o parte di un'immagine di runtime collegata in precedenza. Questa funzione deve essere abilitata durante la creazione del JDK. Non viene abilitata per impostazione predefinita e alcuni fornitori di JDK potrebbero scegliere di non abilitarla.

Aggiornamenti di prestazioni e runtime

  • JEP 450: Compact Object Headers (sperimentale): aiuta gli sviluppatori ad aumentare la produttività, riducendo da 96-128 bit a 64 bit la dimensione delle intestazioni degli oggetti nella JVM HotSpot nelle architetture a 64 bit. Ciò consente di ridurre le dimensioni dell'heap, migliorare la densità di distribuzione e aumentare la località dei dati.
  • JEP 475: Late Barrier Extension for G1: aiuta gli sviluppatori ad aumentare l'efficienza, posticipando l'espansione delle barriere del garbage collector G1, rispetto all'inizio della pipeline di compilazione di C2 JIT. Questo offre la possibilità di ridurre l'overhead, se si verifica dopo le ottimizzazioni indipendenti dalla piattaforma e l'allocazione dei registri. Semplificando l'implementazione delle barriere del garbage collector G1, questa funzione consente di aumentare l'efficienza, la comprensibilità, la resilienza e la qualità del codice generato da C2.
  • JEP 483: Ahead-of-Time Class Loading & Linking: aiuta gli sviluppatori ad aumentare la produttività e a migliorare i tempi di avvio, rendendo immediatamente disponibili le classi di un'applicazione, in uno stato caricato e collegato, all'avvio della Java Virtual Machine HotSpot. Questa funzione non richiede l'uso dello strumento jlink o jpackage, né la modifica della modalità di avvio delle applicazioni dalla riga di comando, o qualsiasi modifica al codice di applicazioni, librerie o framework. Di conseguenza, aiuta a gettare le basi per il miglioramento continuo dei tempi di avvio e warm up.
  • JEP 490: ZGC: Remove the Non-Generational Mode: aiuta gli sviluppatori a ridurre i costi di manutenzione legati al supporto di due modalità diverse, rimuovendo la modalità non generazionale di Z Garbage Collector (ZGC).
  • JEP 491: Synchronize Virtual Threads without Pinning: aiuta gli sviluppatori ad aumentare la produttività, estendendo la scalabilità del codice Java e delle librerie che utilizzano metodi e istruzioni sincronizzati. Consentendo ai thread virtuali di rilasciare i thread della piattaforma di base, questa funzione permette agli sviluppatori di accedere a più thread virtuali per gestire i carichi di lavoro applicativi.

Codice sorgente

  • JEP 404: Generational Shenandoah (sperimentale): aiuta gli sviluppatori ad aumentare la produttività, ottimizzando il garbage collector Shenandoah con funzionalità sperimentali di raccolta generazionale che migliorano il throughput sostenibile, la resilienza del carico e l'utilizzo della memoria.
  • JEP 479: Remove the Windows 32-bit x86 Port: aiuta gli sviluppatori ad aumentare l'efficienza, rimuovendo il codice sorgente e creando il supporto per la porta x86 a 32 bit di Windows, in modo da semplificare l'infrastruttura di generazione e test del JDK.
  • JEP 501: Deprecate the 32-bit x86 Port for Removal: aiuta gli sviluppatori ad aumentare la produttività, deprecando la porta x86 a 32 bit in vista della sua rimozione nelle release successive. In questo modo gli sviluppatori possono accedere a nuove funzionalità che richiedono un supporto specifico della piattaforma, senza essere costretti a implementare i fallback a 32 bit di x86.

Inoltre, con l'introduzione di funzionalità moderne e sicure, e con la graduale eliminazione di funzionalità obsolete e quelle non sicure, Oracle ribadisce il suo impegno per l'integrità di Java e il suo allineamento alle best practice di sviluppo del software. Oracle ha previsto la rimozione di tre funzioni in una delle prossime versioni di Java: JEP 472: Prepare to Restrict the Use of JNI, JEP 486: Permanently Disable the Security Manager e JEP 498: Warn upon Use of Memory-Access Methods in sun.misc.Unsafe.

Le funzioni della release Java 24 sono frutto di una collaborazione stretta e continua fra Oracle e altri membri della community globale di sviluppatori Java, tramite OpenJDK e Java Community Process (JCP). Per maggiori dettagli sulle funzioni di Java 24, è possibile leggere il blog tecnico dedicato a Java 24.

Il sostegno alla community globale di Java con l'innovazione in cloud

Implementando Java su Oracle Cloud Infrastructure (OCI), uno dei primi hyperscaler a supportare Java 24, è possibile ottenere livelli superiori di prestazioni, efficienza, innovazione e risparmio sui costi. OCI offre infatti Oracle Java SE, Oracle GraalVM e il Java SE Subscription Enterprise Performance Pack senza alcun costo aggiuntivo, e grazie a ciò Java 24 consente agli sviluppatori di creare e implementare applicazioni che possono eseguite più velocemente, più efficacemente e con un rapporto prezzo/prestazioni ottimizzato.

La Oracle Java Universal SE Subscription offre ai clienti un supporto di qualità eccellente. Include il Java SE Subscription Enterprise Performance Pack, il supporto per tutto il portafoglio Java, il diritto di utilizzare Oracle GraalVM, l'accesso alle funzioni avanzate di Java Management Service e la flessibilità necessaria per eseguire l'upgrade in funzione delle esigenze di business dei clienti. Ciò consente alle organizzazioni IT di gestire la complessità, ridurre i rischi per la sicurezza e contenere i costi.

I primi commenti degli esperti di settore

"Siamo entustiasti di sperimentare le ottimizzazioni apportate all'API Java Vector in Java 24, per migliorare ulteriormente le applicazioni di intelligenza artificiale predittiva e generativa", ha dichiarato Frank Greco, Presidente di NYJavaSIG. "La possibilità di creare algoritmi di intelligenza artificiale efficienti direttamente in Java garantisce alti livelli di efficienza e scalabilità per le applicazioni AI su varie piattaforme hardware moderne".

"Java 24 introduce Stream Gatherers, un miglioramento notevole che permette agli sviluppatori di controllare in modo granulare il raggruppamento e l'elaborazione degli elementi all'interno dei flussi", ha dichiarato Richard Fichtner, CEO di XDEV Software GmbH. "In questo modo, le trasformazioni complesse dei dati diventano più espressive ed efficienti. Questa funzione mi piace moltissimo, perché elimina le soluzioni alternative, come i collector personalizzati o l'uso complesso di flatMap, consentendo di creare pipeline di flusso più leggibili e facili da gestire".

"Java è come una salsa creata da uno chef stellato, con ingredienti scelti con cura e sobbolita quel tanto che basta per esprimere il suo gusto migliore", ha dichiarato il Dott. Venkat Subramaniam, fondatore di Agile Developer, Inc. "Attualmente i miei gusti preferiti sono l'API Stream Gatherers, Scoped Values e Structured Concurrency".

"La terza anteprima dei ‘flexible constructor’ in Java 24 è straordinaria, perché trovo utilissima la possibilità di fare le mie chiamate a this/super come una singola riga di codice senza creare un metodo di supporto privato", ha dichiarato Jeanne Boyarsky, sviluppatrice di CodeRanch. "Anche la funzione Stream Gatherers è molto interessante e non vedo l'ora che vengano rilasciate librerie piene di nuove operazioni intermedie da sfruttare".

"Noi di JetBrains siamo felicissimi di dare il supporto per Java 24 in IntelliJ IDEA fin dal primo giorno", ha dichiarato Marit van Dijk, Java Developer Advocate di JetBrains. "Grazie al nostro impegno a tenere il passo con gli ultimi miglioramenti Java, possiamo garantire agli sviluppatori la possibilità di adottare senza problemi le sue nuove, utilissime funzionalità, mentre la possibilità di scaricare Java 24 direttamente all'interno dell'IDE semplifica notevolmente la configurazione".

Per ulteriori informazioni su Java e sul suo ecosistema globale, è possibile visitare:

  • Dev.java: il portale ufficiale per scoprire di più su Java
  • Inside.java: notizie e opinioni dai membri del team Java di Oracle
  • Java YouTube: il canale ufficiale di Java su YouTube, per guardare video didattici

Risorse aggiuntive

Informazioni di contatto per la stampa

Simona Menghini

ORACLE Italia
342-6989617

Caterina Ferrara, Viviana Viviani, Ilaria Nerazzini

Prima Pagina Comunicazione
0291339.811

Informazioni su Oracle

Oracle offre suite integrate di applicazioni e un'infrastruttura sicura e autonoma in Oracle Cloud. Per maggiori informazioni su Oracle (NYSE: ORCL), è possibile visitare il sito www.oracle.com.

Dichiarazione di non responsabilità per prodotti futuri

Le informazioni di cui sopra hanno lo scopo di illustrare la nostra direzione di prodotto generale. Hanno esclusivamente scopo informativo e non possono essere incluse in alcun contratto. Non rappresentano alcun impegno a fornire materiale, codice o funzionalità e non dovrebbero essere utilizzate per prendere decisioni di acquisto. Lo sviluppo, il rilascio, le tempistiche e i prezzi di tutte le funzioni o le funzionalità descritte per i prodotti Oracle possono cambiare e rimangono a esclusiva discrezione di Oracle Corporation.

Marchi registrati

Oracle, Java, MySQL e NetSuite sono marchi registrati di Oracle Corporation. NetSuite è stata la prima azienda cloud, che ha inaugurato la nuova era del cloud computing.