Dopo sei mesi di sviluppo, l'azienda Oracle piattaforma (Java Platform, Standard Edition 13), di cui viene utilizzato il progetto OpenJDK come implementazione di riferimento. In Java SE 13 è mantenuta la retrocompatibilità con le versioni precedenti della piattaforma Java, tutti i progetti Java precedentemente scritti funzioneranno senza modifiche su questa nuova versione. Sono disponibili pacchetti pronti per l'installazione di Java SE 13 (JDK, JRE e Server JRE) per Linux (x86_64), Solaris, Windows e macOS. L'implementazione di riferimento è stata sviluppata all'interno del progetto OpenJDK è completamente aperta sotto licenza GPLv2 con eccezioni GNU ClassPath, che consentono il binding dinamico con prodotti commerciali.
Java SE 13 è classificato come un rilascio a supporto normale, con aggiornamenti previsti fino al rilascio successivo. Per un ramo con supporto a lungo termine (LTS), si consiglia di utilizzare Java SE 11, con aggiornamenti previsti fino al 2026. Il precedente ramo LTS, Java 8, sarà supportato fino a dicembre 2020. Il prossimo rilascio LTS è previsto per settembre 2021. Ricordiamo che a partire dal rilascio di Java 10, il progetto è passato a un nuovo processo di sviluppo, che prevede cicli di rilascio più brevi. Le nuove funzionalità ora si sviluppano in un ramo master costantemente aggiornato, dal quale si biforcano rami per la stabilizzazione dei nuovi rilasci ogni sei mesi. Il rilascio di Java 14 è programmato per marzo dell'anno prossimo, con versioni preliminari già disponibili per i test.
Da :
- supporto per l'aggiunta dinamica di archivi CDS (Class-Data Sharing), che consentono l'accesso condiviso delle applicazioni a classi comuni. Con il CDS, le classi comuni possono essere posizionate in un archivio condiviso separato, il che accelera il rilascio delle applicazioni e riduce i costi. Nella nuova versione sono stati aggiunti strumenti per l'archiviazione dinamica delle classi dopo la fine dell'esecuzione dell'applicazione. Le classi archiviate includono tutte le classi caricate durante l'esecuzione del programma e le relative librerie che erano assenti nell'archivio CDS di base fornito inizialmente;
- Nel Garbage Collector ZGC (Z Garbage Collector) supporto per il recupero della memoria non utilizzata dal sistema operativo;
- una versione rivisitata dell'API Legacy Socket (java.net.Socket e java.net.ServerSocket), che è più semplice da mantenere e debuggare. Inoltre, l'implementazione proposta sarà più facile da adattare per lavorare con il nuovo sistema di thread nell'utente spazio (fibers), sviluppato nel progetto Loom;
- sviluppo di una nuova forma di espressioni "switch". È stata aggiunta la capacità sperimentale (Anteprima) di utilizzare "switch" non solo come operatore ma anche come espressione. Ad esempio, ora è possibile utilizzare strutture del tipo:
int numLetters = switch (day) {
case MONDAY, FRIDAY, SUNDAY -> 6;
case TUESDAY -> 7;
case THURSDAY, SATURDAY -> 8;
case WEDNESDAY -> 9;
};o
System.out.println(
switch (k) {
case 1 -> «one»
case 2 -> «two»
default -> «many»
}
);In futuro, basandosi su questa possibilità implementare il supporto per il pattern matching;
- supporto sperimentale per blocchi di testo: una nuova forma di literali di stringa che consente di includere dati di testo multilinea nel codice sorgente senza necessità di eseguire l'escaping dei caratteri e preservando il formato originale del testo nel blocco. Il blocco è delimitato da tre virgolette doppie. Ad esempio, invece di scrivere
String query = «SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB`\n» +
«WHERE `CITY` = ‘INDIANAPOLIS’\n» +
«ORDER BY `EMP_ID`, `LAST_NAME`;\n»;ora è possibile utilizzare la seguente costruzione:
String query = «»»
SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB`
WHERE `CITY` = ‘INDIANAPOLIS’
ORDER BY `EMP_ID`, `LAST_NAME`;
«»»; - Sono stati chiusi 2126 rapporti di errore, dei quali 1454 sono stati risolti dai dipendenti Oracle e 671 da partecipanti esterni, di cui un sesto delle modifiche è stato apportato da sviluppatori indipendenti, mentre il resto da rappresentanti di aziende come IBM, Red Hat, Google, Loongson, Huawei, ARM e SAP.
Fonte: opennet.ru
