Java8 contro Java9

Java8 Vs Java9



Java 8 vs Java 9: ​​miglioramenti in Java 9 che devi conoscere

Molti sviluppatori si rivolgeranno a Java per creare applicazioni. Come tutti sappiamo, Java è incredibilmente versatile, facile da usare, sicuro, affidabile e, soprattutto, è indipendente dalla piattaforma. Java ha un seguito di oltre 6,5 milioni di sviluppatori in tutto il mondo. In quanto tale, è il linguaggio perfetto da usare poiché anche il materiale di riferimento è abbondante.

Tuttavia, Java ha continuato a crescere ed evolversi nel corso degli anni. Creato da Sun Microsystems nel 1995 , Java ha continuato a dimostrare la sua affidabilità. La precedente build di Java in uso dal 18 marzo 2014 era Java SE 8. Quando è stata presentata, i critici hanno affermato che si trattava di un'opera d'arte, un rilascio di flussi di modifiche nelle API. Ora c'è un nuovo ragazzo sul blocco. Java 9 appena coniato è finalmente arrivato. Presentato il 21 settembre 2017 , Java SE 9 dovrebbe scuotere il modo in cui facciamo le cose e il modo in cui gli sviluppatori creano applicazioni.







Grazie all'incredibile agilità e versatilità di Java 8, le aziende hanno creato soluzioni incredibili per settori come l'assistenza sanitaria, il fintech e altri settori importanti. Java 9, d'altra parte, promette di basarsi su questo e di offrire funzionalità completamente nuove agli sviluppatori.



Quindi, diamo un'occhiata alle novità di Java 9.



Progetto puzzle

Questo è uno dei punti salienti di Java 9. Fondamentalmente, il progetto jigsaw è il nome dato a modularizzazione di Giava. Come i pezzi del puzzle si uniscono pezzo per pezzo per creare un'immagine più grande, così fa la modularità di Java 9. Ciò significa che il codice è suddiviso in parti (moduli) a causa delle attività o delle funzionalità da eseguire. Questo è un enorme passo avanti perché la modularizzazione non solo rende la riutilizzabilità del codice molto più comoda, ma anche la gestione e il debug sono semplici. Per questo motivo, scopriamo che gli sviluppatori avranno un tempo più semplice per creare applicazioni con Java 9 rispetto a qualsiasi altra build precedente.





Un altro vantaggio della modularizzazione è che gli sviluppatori possono ora creare applicazioni leggere e scalabili. Soprattutto con l'Internet of Things che continua a crescere, troveremo più app simili scritte in Java.

PEC 222: jshell : La shell Java

Java 9 include il nuovo strumento read-eval-print loop (REPL). Dopo essere stato nella sua fase di sviluppo sotto Progetto a destra questa funzione è stata finalmente rilasciata al pubblico. Questa nuova funzionalità è uno strumento interattivo utilizzato per testare espressioni, istruzioni e dichiarazioni scritte in Java. L'obiettivo principale dell'API e dello strumento JShell è dare allo sviluppatore la possibilità di testare le funzionalità sopra menzionate nello stato della shell. Si tratta principalmente di codifica e indagine veloci, per cui le espressioni e le istruzioni non devono essere all'interno di un metodo e i metodi a loro volta, non devono essere all'interno di una classe. In questo modo uno sviluppatore può analizzare rapidamente pezzi di codice e vedere se porteranno l'effetto desiderato.



Lo strumento jshell avrà un'interfaccia a riga di comando con le seguenti caratteristiche:

  • Definizione e importazioni predefinite configurabili.
  • Una storia con capacità di modifica
  • Aggiunta automatica dei punti e virgola terminali necessari

Miglioramenti del compilatore

Per garantire che le applicazioni vengano eseguite più velocemente, Java 9 ha arruolato una nuova tecnologia chiamata compilazione anticipata (AoT). Questa tecnologia, seppur nelle sue fasi sperimentali, consente di compilare le classi Java in codice nativo ancor prima che venga lanciato nelle macchine virtuali. Le possibilità di questo sono infinite. Tuttavia, l'uso più immediato di questa tecnologia sta migliorando il tempo di avvio per app grandi e piccole senza alcun deterrente nelle massime prestazioni.

In retrospettiva, Java 8 utilizza compilatori Just-in-time (JIT). Questi compilatori sono veloci ma richiedono un po' più di tempo prima di avviarsi. Ciò potrebbe essere irrilevante per programmi o app più piccoli perché non c'è molto codice da compilare. Tuttavia, per le app più grandi, la narrazione è abbastanza diversa. Il riscaldamento di cui ha bisogno un compilatore just-in-time significa che alcuni metodi non vengono compilati, indebolendo così le prestazioni dell'app.

La seconda fase nell'implementazione della compilazione intelligente è il miglioramento della portabilità e della stabilità dello strumento Javac. Il miglioramento di questo strumento consente di utilizzarlo direttamente nella JVM (Java Virtual Machine) come impostazione predefinita. A parte questo, lo strumento è stato generalizzato in modo tale da consentire agli sviluppatori di utilizzarlo anche al di fuori dell'ambiente JDK. Per gli sviluppatori questo è un grosso problema poiché Java può essere utilizzato in progetti più grandi che possono essere facilmente adattati senza preoccuparsi della compatibilità. Un altro aggiornamento cruciale è la retrocompatibilità del compilatore Javac la cui unica funzione è quella di compilare app e programmi creati utilizzando Java 9 per essere eseguiti anche su versioni precedenti di Java.

Migliore supporto JavaScript

Poiché JavaScript continua a prendere slancio e a diventare uno dei preferiti da molti, JDK 9 ha reso possibile incorporare JavaScript nelle app Java. Tutto questo è fatto con l'aiuto di Progetto rinoceronte il cui obiettivo principale era creare un runtime JavaScript ad alte prestazioni ma leggero in Java. Questo ovviamente è stato fornito quando hanno fornito un motore JavaScript nella versione JDK 8. Ora, nella versione 9, c'è un'API parser il cui obiettivo è l'ordine di sintassi ECMAScript di Nashorn. Ciò che fa questa API è consentire l'analisi del codice ECMAScript da parte di framework e IDE lato server senza dover fare affidamento sulle classi di implementazione interne di Project Nashorn.

G1 come il netturbino

Contrariamente alla credenza popolare, Java non ha uno, ma quattro raccoglitori di rifiuti. Questi raccoglitori di rifiuti non sono creati uguali e, in quanto tali, scegliere quello sbagliato significava avere problemi di prestazioni nell'applicazione. In Java 8, il Garbage Collector predefinito era Parallel / Throughput Collector. Questo raccoglitore di rifiuti è stato sostituito dal suo predecessore, il Garbage-first collector (G1). Poiché il raccoglitore G1 è stato progettato per supportare in modo efficiente heap più grandi di 4 GB, è il raccoglitore di rifiuti perfetto per applicazioni sia su piccola che su larga scala.

Aggiornamenti API

In questa nuova versione del kit di sviluppo Java, sono stati apportati diversi aggiornamenti alle API e discuteremo dei più importanti.

Il primo sono gli aggiornamenti di concorrenza Java 9 che hanno Java.util.concurrent.Flow e CompletableFuture. Mirato a risolvere il problema che è la contropressione. Flow è l'implementazione di Java del API di flussi reattivi che mira essenzialmente a risolvere il problema della contropressione. La contropressione è l'accumulo di dati che si verifica quando il tasso di richieste in entrata è maggiore della capacità di elaborazione dell'applicazione. A lungo termine, questo è un problema perché l'applicazione finisce con un buffer di dati non elaborati. Questo aggiornamento consentirà una migliore gestione di timeout, ritardi e sottoclassi.

La sicurezza fa parte dell'identità principale di Java. In quanto tale, il supporto per il nuovo approvato HTTP 2.0 RFC è un vantaggio enorme. HTTP 2.0 RFC è stato costruito sopra Algoritmo SPDY di Google che ha già iniziato a dare i suoi frutti con miglioramenti di velocità che vanno dall'11,81% al 47,7% rispetto al precedente HTTP 1.1. Questa API client è un aggiornamento ai protocolli HTTP principali e all'API HttpURLConnection, il che è problematico, per non dire altro, poiché è stato realizzato anche prima di HTTP 1.

La memorizzazione nella cache del codice è sempre stata una strategia utilizzata per rendere le applicazioni più veloci e fluide nel corso degli anni. Tuttavia, non è privo di limiti, e questo non è passato inosservato. Un aggiornamento in Java 9 mostra chiaramente JDK 9 che divide i codici memorizzati nella cache in parti più piccole, migliorando così le prestazioni complessive. JDK 9 utilizza iteratori speciali per saltare il codice non di metodo; separare codice profilato, non profilato e non metodologico; e migliorando alcuni benchmark per i tempi di esecuzione.

Vantaggi di Java 9

Per molti imprenditori, non c'è differenza tra Java 8 e 9. Tuttavia, per lo sviluppatore, c'è un mondo di differenza. Questi sono i vantaggi che Java SE 9 ha rispetto ai suoi predecessori.

  • La velocità di sviluppo sarà notevolmente aumentata grazie al sistema di moduli che non sono solo più facili da gestire ed eseguire il debug, ma anche riutilizzabili, il che significa che non devi scrivere l'intero codice da zero.
  • Migliorare l'efficacia delle risorse per le applicazioni dalla modularizzazione e anche semplificare l'estrazione delle risorse poiché gli sviluppatori prenderanno solo i moduli necessari anziché l'intero JRE.
  • Analisi in tempo reale di frammenti di codice come micro benchmark utilizzato per esaminare le prestazioni di piccoli pezzi di codice.

Fonti

http://openjdk.java.net/jeps/251
https://www.romexsoft.com/blog/java-8-vs-java-9/
https://blogs.oracle.com/java/features-in-java-8-and-9
https://dzone.com/articles/5-features-in-java-9-that-will-change-how-you-deve

Eclipse Java Tutorial