Java 9 - Panoramica
JAVA 9 (noto anche come jdk 1.9) è una versione principale dello sviluppo del linguaggio di programmazione JAVA. La sua versione iniziale è stata rilasciata il 21 settembre 2017. Gli obiettivi principali del rilascio di Java 9 sono:
Rendere la piattaforma JDK e Java Standard Edition modulare, nel senso che può essere ridotta a piccoli dispositivi di elaborazione.
Per migliorare la sicurezza complessiva delle implementazioni JDK e Java.
Per rendere il processo di compilazione e la manutenzione di librerie di codici Java e applicazioni di grandi dimensioni facili per piattaforme JAVA SE ed EE.
Progettare e implementare un sistema di moduli standard per la piattaforma Java che può essere applicato facilmente sia alla piattaforma che a JDK.
Nuove caratteristiche
Ci sono oltre 90 miglioramenti aggiunti a Java 8, i più significativi sono menzionati di seguito:
Module - Un nuovo tipo di componente di programmazione Java introdotto come modulo, che è una raccolta di codice e dati auto-descrittiva denominata.
REPL (JShell) - Funzionalità REPL (Read-Eval-Print Loop) aggiunta alla piattaforma Java.
HTTP 2 Client - nuova API HTTPClient che supporta websocket e flussi HTTP 2 e funzionalità server push.
Improved JavaDocs- Supporta la generazione di output HTML5. Fornisce una casella di ricerca per la documentazione API generata.
Multirelease JAR - Migliora il formato JAR in modo che più versioni specifiche di Java dei file di classe possano coesistere in un unico archivio.
Collection Factory Methods - Nuovi metodi factory statici per le interfacce List, Set e Map per creare istanze immutabili di tali raccolte.
Private Interface Methods - Interfacce migliorate con metodi statici privati e privati.
Process API Improvements - API migliorata per controllare e gestire i processi del sistema operativo.
Stream API Improvements - Maggiore sicurezza e robustezza consentendo di filtrare i flussi in entrata dei dati di serializzazione degli oggetti.
Try With Resources improvement - Ora le variabili finali possono essere utilizzate come risorse nell'istruzione try-with-resources.
Enhanced @Deprecated Annotation - @ Annotazione obsoleta rinnovata per fornire ulteriori informazioni sullo stato e sulla disposizione prevista di un'API.
Inner Class Diamond Operator - Consenti l'utilizzo dell'operatore diamante con classi anonime se è possibile indicare il tipo di argomento del tipo dedotto.
Optional Class Improvements - Nuovi metodi utili vengono aggiunti alla classe java.util.Optional.
Multiresolution Image API - Supporta l'incapsulamento di una serie di immagini con diverse risoluzioni in un'unica immagine multirisoluzione.
CompletableFuture API improvements - I meccanismi asincroni della classe CompletableFuture possono eseguire un'azione quando il processo esce con il metodo ProcessHandle.onExit.
Lightweight JSON - Un'API leggera introdotta per utilizzare e generare documenti e flussi di dati tramite json in java 9.
Reactive Streams API - Una nuova API Reactive Streams in Java SE 9 è stata introdotta per supportare la programmazione reattiva in java 9.