La nuova versione di Java SE 18 è già stata rilasciata e queste sono le sue novità

Dopo sei mesi di sviluppo, Oracle ha rilasciato il rilascio di la nuova versione di JavaSE 18 (Standard Edition), che utilizza il progetto open source OpenJDK come implementazione di riferimento.

In questa nuova versione di Java SE 18 viene fornito con l'eccezione del rimozione di alcune funzionalità deprecate, mantiene la compatibilità con le versioni precedenti della piattaforma Java e la maggior parte dei progetti Java scritti in precedenza continueranno a funzionare invariati se eseguiti con la nuova versione.

Principali novità di Java SE 18

In questa nuova versione di Java SE 18 la codifica predefinita è UTF-8. API Java che elaborano dati di testo con codifica dei caratteri ora utilizzerà UTF-8 per impostazione predefinita su tutte le piattaforme, indipendentemente dalle impostazioni di sistema e dalle impostazioni regionali. Per restituire il vecchio comportamento, in cui la codifica viene scelta tenendo conto della locale del sistema, è possibile utilizzare il parametro “-Dfile.encoding=COMPAT”.

Un altro dei cambiamenti che spicca è lui riprogettato l'implementazione dell'API java.lang.reflect (Core Reflection), progettato per ottenere informazioni su metodi, campi e costruttori di classi, nonché l'accesso alla struttura interna delle classi. l'api java.lang.riflettere di per sé non è cambiato, ma è ora implementato utilizzando gli identificatori delle modalità previste dal modulo java.lang.invoke, invece di usare generatori di bytecode. La modifica ha consentito di unificare e facilitare il mantenimento delle implementazioni di java.lang.reflect e java.lang.invoke.

Oltre a questo, si menziona anche quello viene proposta la terza implementazione preliminare di Vector API, che fornisce funzioni per i calcoli vettoriali che vengono eseguiti utilizzando le istruzioni vettoriali dei processori x86_64 e AArch64 e consentono di applicare operazioni simultanee a più valori (SIMD). A differenza delle funzionalità fornite nel compilatore HotSpot JIT per la vettorializzazione automatica delle operazioni scalari, la nuova API consente di controllare esplicitamente la vettorizzazione per l'elaborazione parallela dei dati.

Si evidenzia anche questo aggiunta un'interfaccia SPI (interfaccia del fornitore di servizi) per risolvere nomi host e indirizzi IP, che consente di utilizzare risolutori alternativi in ​​java.net.InetAddress che non sono legati ai driver forniti dal sistema operativo.

D'altra parte, è stato proposto seconda implementazione preliminare di Foreign Function & Memory API, con cui le applicazioni possono interagire con codice e dati al di fuori del runtime Java. La nuova API consente una chiamata efficiente di funzioni non JVM y accedere alla memoria che non è gestito da JVM. Ad esempio, è possibile richiamare funzioni da librerie condivise esterne e accedere ai dati di processo senza utilizzare JNI.

Aggiunto un file seconda implementazione sperimentale del pattern matching nelle espressioni interruttore, che consente di utilizzare modelli flessibili invece di valori esatti nei tag "case", coprendo un numero di valori contemporaneamente, che in precedenza richiedevano stringhe ingombranti di espressioni "if...else".

Il pacchetto include com.sun.net.httpserver, che include l'utilità jwebserver e l'API della biblioteca con la realizzazione da un semplice server http per servire contenuto statico (i controller CGI e simili a servlet non sono supportati). Il server http integrato non è ottimizzato per i carichi di lavoro e non supporta il controllo dell'accesso o l'autenticazione, poiché è progettato principalmente per l'uso nel processo di sviluppo di progetti di prototipazione, debug e test.

Delle altre modifiche che risaltano:

  • JavaDoc supporta il tag "@frammento» per incorporare esempi funzionanti e frammenti di codice nella documentazione API, a cui è possibile accedere con strumenti di convalida, evidenziazione della sintassi e integrazione IDE.
  • Deprecato e verrà rimosso in una versione futura, il meccanismo di completamento, nonché i metodi correlati come Object.finalize(), Enum.finalize(), Runtime.runFinalizzazione() e System.runFinalizzazione().
  • i netturbini ZGC (Z Garbage Collector), SerialGC e ParallelGC supportano la deduplicazione delle stringhe.

JavaSE 18 è classificata come una normale versione di supporto, con aggiornamenti da rilasciare prima della prossima versione. Il ramo del supporto a lungo termine (LTS) dovrebbe essere Java SE 17, che riceverà aggiornamenti fino al 2029.

È importante ricordare che a partire dal rilascio di Java 10, il progetto è passato a un nuovo processo di sviluppo, il che significa un ciclo più breve per la formazione di nuovi rilasci. Nuove funzionalità sono ora in fase di sviluppo in un ramo principale costantemente aggiornato, che include modifiche già completate e da cui ramificano ogni sei mesi per stabilizzare le nuove versioni.

Ottieni Java SE 18

Per chi fosse interessato a provare questa nuova versione, sappi che le build sono pronte per Linux (x86_64, AArch64), Windows (x86_64) e macOS (x86_64, AArch64) e possono essere ottenute dal link sottostante.


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.