Java8 vs Java9

Java8 vs Java9

Java 8 vs Java 9: ​​Miglioramenti in Java 9 che devi sapere

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 più di 6.5 milioni di sviluppatori a livello globale. In quanto tale, è il linguaggio perfetto da usare poiché il materiale di riferimento è anche 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 che è in uso dal 18 marzo 2014 era Java SE 8. Quando è stato svelato, i critici hanno affermato che si trattava di un'opera d'arte, un rilascio di flussi di cambiamenti nelle API. Ora c'è un nuovo bambino sul blocco. Java 9 appena coniati è 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.

A causa dell'incredibile agilità e versatilità di Java 8, le aziende hanno creato incredibili soluzioni per industrie come l'assistenza sanitaria, FinTech e altri settori principali. Java 9, d'altra parte, promette di costruirlo e fornire funzionalità completamente nuove agli sviluppatori.

Quindi, diamo un'occhiata a ciò che è nuovo in Java 9.

Project Jigsaw

Questo è uno dei punti salienti di Java 9. Fondamentalmente, Project Jigsaw è il nome dato alla modularizzazione di Java. Mentre i pezzi di puzzle si uniscono pezzo per pezzo per creare un'immagine più grande, anche 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 è semplice. Per questo motivo, scopriamo che gli sviluppatori avranno più tempo a creare applicazioni con Java 9 che con 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ù tali app scritte in Java.

JEP 222: jshell: The Java Shell

Java 9 presenta il nuovo strumento Loop-Print-Print Loop). Dopo essere stato nella sua fase di sviluppo nell'ambito del progetto Kulia, questa funzione è stata finalmente rilasciata al pubblico. Questa nuova funzionalità è uno strumento interattivo che viene utilizzato per testare espressioni, dichiarazioni e dichiarazioni scritte in Java. L'obiettivo principale dell'API e dello strumento JShell è quello di offrire allo sviluppatore la possibilità di testare le funzionalità sopra menzionate nello stato di shell. Questa è principalmente codifica e indagine rapide, per cui le espressioni e le dichiarazioni non devono essere all'interno di un metodo e dei 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 della riga di comando con le seguenti funzionalità:

  • Definizione e importazioni predefinite configurabili.
  • Una storia con funzionalità di editing
  • Aggiunta automatica dei punti emergenti necessari

Miglioramenti del compilatore

Per garantire che le applicazioni siano più veloci, Java 9 ha arruolato una nuova tecnologia chiamata ahead-of-time (AOT). Questa tecnologia sebbene nelle sue fasi sperimentali, consente di compilare le lezioni Java nel codice nativo anche prima che venga lanciato nelle macchine virtuali. Le possibilità di questo sono infinite. Tuttavia, l'uso più immediato di questa tecnologia è migliorare il tempo di avvio per app grandi e piccole senza alcuna deterrenza nelle prestazioni di punta.

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

La seconda fase nella distribuzione della compilation intelligente è il miglioramento della portabilità e della stabilità dello strumento Javac. Il miglioramento di questo strumento consente di utilizzare direttamente nella JVM (Java Virtual Machine) come impostazione predefinita. A parte questo, lo strumento è stato generalizzato in modo tale da consentire agli sviluppatori di usarlo 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 ospitati senza preoccuparsi della compatibilità. Un altro aggiornamento cruciale è la compatibilità all'indietro del compilatore Javac la cui unica funzione è quella di compilare app e programmi creati utilizzando Java 9 per essere eseguito anche su versioni Java più vecchie.

Migliore supporto JavaScript

Poiché JavaScript continua a guadagnare slancio e diventare uno dei preferiti per molti, JDK 9 ha permesso di incorporare JavaScript nelle app Java. Tutto ciò che è fatto con l'aiuto di Project Nashorn il cui obiettivo principale era quello di creare runtime JavaScript ad alte prestazioni ma leggero in Java. Questo ovviamente è stato consegnato quando hanno fornito un motore JavaScript nella versione 8 di JDK. Ora nella versione 9, esiste un'API di parser il cui obiettivo è l'ordine di sintassi ECMASCRIPT di Nashorn. Quello che fa questa API è abilitare l'analisi del codice ECMAScript tramite framework e IDE sul lato server senza dover fare affidamento sulle classi di implementazione interne di Project Nashorn.

G1 come collezionista di immondizia

Contrariamente alla credenza popolare, Java non ha uno, ma quattro collezionisti di immondizia. Questi collezionisti di immondizia non sono creati uguali e come tali, scegliendo quello sbagliato significava avere problemi di prestazioni nell'applicazione. In Java 8, il garbage Collector predefinito era il collettore parallelo / throughput. Questo collezionista di immondizia è stato sostituito dal suo predecessore The Garbage-First Collector (G1). Poiché il collettore G1 è stato progettato per supportare un mucchio più grande di 4 GB in modo efficiente, è il collettore di immondizia perfetto per applicazioni sia di piccole che su larga scala.

Aggiornamenti API

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

Il primo è gli aggiornamenti di concorrenza Java 9 che hanno Java.util.simultaneo.Flusso e Future completabili. Mirato a risolvere il problema che è la back-pressione. Il flusso è l'implementazione di Java dell'API dei flussi reattivi che mira essenzialmente a risolvere il problema della contropressione. La back pressione è l'accumulo di dati che si verifica quando il tasso di richieste in arrivo è maggiore della capacità di elaborazione dell'applicazione. A lungo termine, questo è un problema perché l'applicazione finisce con un buffer di dati non trasformati. Questo aggiornamento significherà una migliore gestione di timeout, ritardi e sottoclasse.

La sicurezza fa parte dell'identità principale di Java. Pertanto, supporto per l'HTTP 2 di recente approvato.0 RFC è un vantaggio enorme. Http 2.0 RFC è stato costruito sopra l'algoritmo SPDY di Google che ha già iniziato a portare frutti con miglioramenti della velocità che vanno da 11.81% a 47.7% dal precedente HTTP 1.1. Questa API client è un aggiornamento ai protocolli HTTP Core e all'API HTTPURLConnection che è problematica, per non dire il minimo da quando è stato fatto anche prima di HTTP 1.

La memorizzazione nella cache del codice è sempre stata una strategia utilizzata per rendere le applicazioni più veloci e più fluide nel corso degli anni. Tuttavia, non è senza i suoi limiti, e questo non è passato inosservato. Un aggiornamento in Java 9 mostra chiaramente JDK 9 Codici memorizzati nella cache in parti più piccole migliorando così le prestazioni complessive. JDK 9 utilizza iteratori speciali per saltare il codice non method; per separare il codice profilato, non profilato e non methodi; e migliorare alcuni parametri di riferimento per il tempo di esecuzione.

Vantaggi di Java 9

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

  • La velocità di sviluppo sarà significativamente aumentata grazie al sistema di moduli che non sono solo più facili da gestire e debug, ma anche riutilizzabili nel significato che non devi scrivere l'intero codice da zero.
  • Migliorare l'efficacia delle risorse per le applicazioni dalla modularizzazione e anche rendere più semplice l'a tiro delle risorse poiché gli sviluppatori prendono solo i moduli necessari anziché l'intero JRE.
  • Analisi in tempo reale di frammenti di codice come i micro benchmark usati per esaminare le prestazioni di piccoli pezzi di codice.

Fonti

http: // openjdk.Giava.net/jeps/251
https: // www.RomexSoft.com/blog/java-8-vs-java-9/
https: // blogs.oracolo.com/java/caratteristiche-in-java-8-e-9
https: // dzone.com/articoli/5-feature-in-java-9-that-will-cost-how-you-deve

https: // linuxhint.com/eclipse-java-tutorial/