Java8 vs Java9

Java8 Vs Java9



Java 8 vs Java 9: ​​Îmbunătățiri în Java 9 pe care trebuie să le cunoașteți

Mulți dezvoltatori vor apela la Java pentru a crea aplicații. După cum știm cu toții, Java este incredibil de versatil, ușor de utilizat, sigur, fiabil și, mai ales, este independent de platformă. Java are un număr de peste 6,5 milioane de dezvoltatori la nivel global. Ca atare, este limbajul perfect de utilizat, deoarece materialul de referință este, de asemenea, abundent.

Cu toate acestea, Java a continuat să crească și să evolueze de-a lungul anilor. Creat de Sun Microsystems în 1995 , Java și-a dovedit în continuare fiabilitatea. Versiunea anterioară a Java, care a fost utilizată începând cu 18 martie 2014, a fost Java SE 8. Când a fost dezvăluită, criticii au spus că este o operă de artă, o eliberare a fluxurilor de modificări în API-uri. Acum există un copil nou la bloc. Java 9 proaspăt bătut este în sfârșit aici. Dezvăluit pe 21 septembrie 2017 , Java SE 9 este de așteptat să agite modul în care facem lucrurile și modul în care dezvoltatorii creează aplicații.







Datorită agilității și versatilității incredibile a Java 8, companiile au creat soluții incredibile pentru industrii precum asistența medicală, fintech și alte sectoare majore. Java 9, pe de altă parte, promite să se bazeze pe acest lucru și să ofere dezvoltatorilor funcționalități complet noi.



Așadar, să aruncăm o privire la noutățile din Java 9.



Project Jigsaw

Acesta este unul dintre punctele culminante ale Java 9. Practic, jigsaw-ul proiectului este numele dat modularizare din Java. Pe măsură ce piesele de puzzle se reunesc bucată cu bucată pentru a crea o imagine mai mare, la fel se modifică și modularitatea Java 9. Acest lucru înseamnă că codul este împărțit în părți (module) datorită sarcinilor sau funcționalităților care trebuie executate. Acesta este un mare pas înainte, deoarece modularizarea nu numai că face ca reutilizarea codului să fie mult mai confortabilă, dar și gestionarea și depanarea sunt simple. Din această cauză, descoperim că dezvoltatorii vor avea mai ușor să creeze aplicații cu Java 9 decât cu orice alte versiuni anterioare.





Un alt avantaj al modularizării este că dezvoltatorii pot crea acum aplicații ușoare și scalabile. Mai ales dacă Internetul obiectelor continuă să crească, vom găsi mai multe astfel de aplicații scrise în Java.

JEP 222: jshell : Java Shell

Java 9 prezintă noul instrument REPL (read-eval-print loop). După ce a fost în faza sa de dezvoltare sub Dreptul proiectului această funcție a fost în cele din urmă lansată publicului. Această nouă caracteristică este un instrument interactiv care este utilizat pentru a testa expresii, declarații și declarații scrise în Java. Scopul principal al API-ului și instrumentului JShell este de a oferi dezvoltatorului șansa de a testa caracteristicile menționate mai sus în starea shell. Aceasta este în primul rând o codificare și o investigație rapidă, prin care expresiile și declarațiile nu trebuie să se afle în interiorul unei metode, iar metodele la rândul lor, nu trebuie să se afle în interiorul unei clase. În acest fel, un dezvoltator poate analiza rapid bucăți de cod și poate vedea dacă vor aduce efectul dorit.



Instrumentul jshell va avea o interfață de linie de comandă cu următoarele caracteristici:

  • Definiție și importuri predefinite configurabile.
  • O istorie cu funcții de editare
  • Adăugarea automată a punctelor și virgulelor terminale necesare

Îmbunătățiri ale compilatorului

Pentru a se asigura că aplicațiile rulează mai rapid, Java 9 a înrolat o nouă tehnologie numită compilare anticipată (AoT). Această tehnologie, deși în fazele sale experimentale, face posibilă compilarea claselor Java în cod nativ chiar înainte de a fi lansată pe mașinile virtuale. Posibilitățile acestui lucru sunt nelimitate. Cu toate acestea, utilizarea mai imediată a acestei tehnologii îmbunătățește timpul de pornire pentru aplicațiile mari și mici, fără nici o descurajare a performanțelor de vârf.

Retrospectiv, Java 8 folosește compilatoare Just-in-Time (JIT). Aceste compilatoare sunt rapide, dar durează puțin mai mult înainte de încălzire. Acest lucru poate fi lipsit de importanță pentru programele sau aplicațiile mai mici, deoarece nu există prea mult cod de compilat. Cu toate acestea, pentru aplicațiile mai mari, narațiunea este destul de diferită. Încălzirea de care are nevoie un compilator just-in-time înseamnă că unele metode nu sunt compilate, slăbind astfel performanța aplicației.

A doua fază a implementării compilării inteligente este îmbunătățirea portabilității și stabilității instrumentului Javac. Îmbunătățirea acestui instrument permite utilizarea acestuia direct în JVM (Java Virtual Machine) ca setare implicită. În afară de aceasta, instrumentul a fost generalizat în așa fel încât să permită dezvoltatorilor să îl folosească chiar și în afara mediului JDK. Pentru dezvoltatori, aceasta este o problemă importantă, deoarece Java poate fi utilizat în proiecte mai mari, care pot fi ușor de acomodat fără a vă face griji cu privire la compatibilitate. O altă actualizare crucială este compatibilitatea inversă a compilatorului Javac a cărei singură funcție este de a compila aplicații și programe create folosind Java 9 pentru a rula și pe versiuni mai vechi Java.

Backup JavaScript mai bun

Deoarece JavaScript continuă să câștige impuls și să devină un favorit pentru mulți, JDK 9 a făcut posibilă încorporarea JavaScript în aplicațiile Java. Toate acestea se fac cu ajutorul Rinocerul proiectului al cărui obiectiv principal a fost de a crea performanță ridicată, dar ușor de executat JavaScript în Java. Desigur, acest lucru a fost livrat atunci când au furnizat un motor JavaScript în versiunea JDK 8. Acum, în versiunea 9, există un API parser a cărui țintă este ordinea de sintaxă ECMAScript a Nashorn. Ceea ce face acest API este să permită analiza codului ECMAScript de către cadre de server și IDE-uri fără a fi nevoie să se bazeze pe clasele de implementare interne ale proiectului Nashorn.

G1 ca colector de gunoi

Contrar credinței populare, Java are nu unul, ci patru colectoare de gunoi. Acești colecționari de gunoi nu sunt creați egali și, ca atare, alegerea celui greșit înseamnă a avea probleme de performanță în aplicație. În Java 8, colectorul de gunoi implicit a fost Colectorul de paralel / de transfer. Acest colector de gunoi a fost înlocuit de predecesorul său, primul colector de gunoi (G1). Deoarece colectorul G1 a fost conceput pentru a suporta în mod eficient grămezi mai mari de 4 GB, este colectorul de gunoi perfect atât pentru aplicații mici, cât și pentru aplicații la scară largă.

Actualizări API

În această nouă versiune a kitului de dezvoltare Java, au fost făcute mai multe actualizări ale API-urilor și vom discuta despre cele mai notabile.

Primul este actualizările simultane Java 9 care au Java.util.concurrent.Flow și CompletableFuture. Destinat rezolvării problemei care este contrapresiunea. Flow este implementarea Java de către API-ul Reactive Streams care are în esență scopul de a rezolva problema contrapresiunii. Contrapresiunea este acumularea de date care apare atunci când rata cererilor primite este mai mare decât capacitatea de procesare a aplicației. Pe termen lung, aceasta este o problemă, deoarece aplicația se termină cu un tampon de date neprocesate. Această actualizare va însemna o mai bună gestionare a expirărilor, întârzierilor și subclasării.

Securitatea face parte din identitatea de bază a Java. Ca atare, sprijin pentru nou-aprobatul HTTP 2.0 RFC este un plus imens. HTTP 2.0 RFC a fost construit deasupra Algoritmul SPDY de la Google care a început deja să dea roade cu îmbunătățiri ale vitezei variind de la 11,81% la 47,7% față de HTTP 1.1 anterior. Acest API client este un upgrade la protocoalele HTTP de bază și API-ul HttpURLConnection care este problematic, pentru a spune cel puțin, deoarece a fost realizat chiar înainte de HTTP 1.

Memorizarea în cache a codului a fost întotdeauna o strategie utilizată pentru a face aplicațiile mai rapide și mai fluide de-a lungul anilor. Cu toate acestea, nu este fără limitele sale și acest lucru nu a trecut neobservat. O actualizare în Java 9 arată clar JDK 9 împărțind codurile cache în părți mai mici, îmbunătățind astfel performanța generală. JDK 9 folosește iteratoare speciale pentru a sări peste codul fără metodă; pentru a separa codul profilat, neprofilat și non-metodic; și îmbunătățirea unor repere pentru timpul de execuție.

Avantajele Java 9

Pentru mulți proprietari de afaceri, nu există nicio diferență între Java 8 și 9. Cu toate acestea, pentru dezvoltator, există o lume a diferenței. Acestea sunt beneficiile pe care le are Java SE 9 față de predecesorii săi.

  • Viteza de dezvoltare va crește semnificativ datorită sistemului de module care nu numai că sunt mai ușor de gestionat și de depanat, ci și reutilizabile, ceea ce înseamnă că nu trebuie să scrieți întregul cod de la zero.
  • Îmbunătățirea eficienței resurselor pentru aplicații din modularizare și, de asemenea, simplificarea extragerii resurselor, deoarece dezvoltatorii vor lua doar modulele necesare în loc de JRE întreg.
  • Analiza în timp real a fragmentelor de cod, cum ar fi micro repere folosit pentru a analiza performanța unor mici bucăți de cod.

Surse

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-hat-will-change-how-you-deve

Tutorial Eclipse Java