Java8 vs Java9

Java8 Vs Java9



Java 8 vs Java 9: ​​Java 9 täiustused, mida peate teadma

Paljud arendajad pöörduvad rakenduste loomiseks Java poole. Nagu me kõik teame, on Java uskumatult mitmekülgne, hõlpsasti kasutatav, turvaline, usaldusväärne ja ennekõike platvormist sõltumatu. Java -l on üle maailma 6,5 ​​miljonit arendajat. Sellisena on see ideaalne keel, mida kasutada, kuna ka võrdlusmaterjali on palju.

Sellest hoolimata on Java aastate jooksul jätkuvalt kasvanud ja arenenud. Loodud Sun Microsystemsi poolt 1995 , Java on jätkuvalt tõestanud oma usaldusväärsust. Eelmine Java versioon, mida kasutati alates 18. märtsist 2014, oli Java SE 8. Kui see avalikustati, ütlesid kriitikud, et see on kunstiteos, API -de muudatuste voogude väljaandmine. Nüüd on plokis uus laps. Värskelt vermitud Java 9 on lõpuks kohal. Avaldati 21. septembril 2017 , Java SE 9 eeldatavasti raputab üles seda, kuidas me asju teeme ja kuidas arendajad rakendusi loovad.







Tänu Java 8 uskumatule paindlikkusele ja mitmekülgsusele lõid ettevõtted uskumatuid lahendusi sellistele tööstusharudele nagu tervishoid, fintech ja muud suuremad sektorid. Java 9 seevastu lubab sellele tugineda ja arendajatele täiesti uusi funktsioone pakkuda.



Niisiis, vaatame, mis on Java 9 uut.



Jigsaw projekt

See on üks Java 9 esiletõstmistest. Põhimõtteliselt on projekti mosaiigi nimi modulaarne Java. Kuna mosaiigitükid tulevad tükkhaaval kokku, et luua üks suurem pilt, siis ka Java 9 modulaarsus. See tähendab, et kood on jaotatud osadeks (mooduliteks) täidetavate ülesannete või funktsioonide tõttu. See on tohutu samm edasi, sest modulaarne ei muuda mitte ainult koodi korduvkasutatavust palju mugavamaks, vaid ka haldamine ja silumine on lihtne. Seetõttu leiame, et arendajatel on Java 9 -ga rakenduste loomine lihtsam kui teiste varasemate versioonidega.





Moduleerimise teine ​​eelis on see, et arendajad saavad nüüd luua kergeid ja skaleeritavaid rakendusi. Eriti kui asjade internet kasvab jätkuvalt, leiame selliseid Java -keeles kirjutatud rakendusi rohkem.

JEEP 222: jshell : Java kest

Java 9 sisaldab uut lugemis-eval-printimise silmuse (REPL) tööriista. Pärast selle arengufaasis olemist Projekt Õige see funktsioon on lõpuks avalikkusele avaldatud. See uus funktsioon on interaktiivne tööriist, mida kasutatakse Java keeles kirjutatud avaldiste, avalduste ja deklaratsioonide testimiseks. JShelli API ja tööriista peamine eesmärk on anda arendajale võimalus testida ülalmainitud funktsioone kesta olekus. See on peamiselt kiire kodeerimine ja uurimine, kusjuures väljendid ja avaldused ei pea olema meetodi ja meetodite sees, ei pea olema klassi sees. Nii saab arendaja kiiresti kooditükke analüüsida ja näha, kas need annavad soovitud efekti.



Tööriistal jshell on käsurealiides, millel on järgmised funktsioonid:

  • Konfigureeritav eelmääratletud määratlus ja import.
  • Redigeerimisvõimalustega ajalugu
  • Vajalike terminali semikoolonite automaatne lisamine

Kompilaatori täiustused

Rakenduste kiirema töötamise tagamiseks on Java 9 kasutusele võtnud uue tehnoloogia, mida nimetatakse enneaegseks (AoT) kompileerimiseks. See tehnoloogia, ehkki eksperimentaalsetes etappides, võimaldab Java -klassid kompileerida algkoodiks juba enne virtuaalmasinates käivitamist. Selle võimalused on lõputud. Selle tehnoloogia kiirem kasutamine parandab aga suurte ja väikeste rakenduste käivitumisaega, takistamata seejuures tipptulemusi.

Tagantjärele mõeldes kasutab Java 8 just-in-time (JIT) kompilaatoreid. Need kompilaatorid on kiired, kuid võtavad enne soojenemist natuke rohkem aega. See võib olla väiksemate programmide või rakenduste jaoks ebaoluline, kuna koostamiseks pole palju koodi. Suuremate rakenduste puhul on aga jutustus üsna erinev. Õigeaegse kompilaatori soojendamine tähendab, et mõnda meetodit ei koostata, nõrgendades rakenduse jõudlust.

Nutika kompileerimise juurutamise teine ​​etapp on Javaci tööriista teisaldatavuse ja stabiilsuse parandamine. Selle tööriista täiustamine võimaldab seda vaikesätena kasutada otse JVM -is (Java Virtual Machine). Peale selle on tööriist üldistatud nii, et arendajad saavad seda kasutada isegi väljaspool JDK keskkonda. Arendajate jaoks on see suur asi, kuna Java -d saab kasutada suuremates projektides, mida saab hõlpsasti majutada ilma ühilduvuse pärast muretsemata. Teine oluline uuendus on Javac kompilaatori ühilduvus tagurpidi, mille ainus ülesanne on kompileerida Java 9 abil loodud rakendusi ja programme, et neid saaks kasutada ka vanemate Java versioonidega.

Parem JavaScripti tugi

Kuna JavaScript kogub jätkuvalt hoogu ja muutub paljude lemmikuks, on JDK 9 võimaldanud JavaScripti Java -rakendustesse manustada. Seda kõike tehakse abiga Projekt ninasarvik mille peamine eesmärk oli luua Java -s suure jõudlusega, kuid samas kerge JavaScripti käitusaeg. See esitati muidugi siis, kui nad pakkusid JavaScripti mootori JDK versioonis 8. Nüüd versioonis 9 on parser API, mille sihtmärk on Nashorni ECMAScripti süntaksitellimus. See API võimaldab ECMAScripti koodi analüüsimist serveripoolsete raamistike ja IDE-de abil, ilma et peaks tuginema projekti Nashorn sisemistele rakendusklassidele.

G1 prügikoristajaks

Vastupidiselt levinud arvamusele on Java -l mitte üks, vaid neli prügikoristajat. Need prügikogujad ei ole võrdsed ja seetõttu tähendas vale valimine rakenduses jõudlusprobleeme. Java 8 -s oli vaikimisi prügikoguja Parallel / Throughput Collector. Selle prügikoguja on asendanud eelkäija prügikoguja (G1). Kuna G1 koguja oli mõeldud tõhusalt üle 4 GB hunnikute toetamiseks, on see ideaalne prügikoguja nii väikeste kui ka suuremahuliste rakenduste jaoks.

API värskendused

Selles Java -arenduskomplekti uues versioonis on API -dele tehtud mitmeid uuendusi ja arutame kõige tähelepanuväärsemaid.

Esimene neist on Java 9 samaaegsed värskendused, millel on Java.util.concurrent.Flow ja CompletableFuture. Eesmärk on lahendada probleem, mis on vasturõhk. Flow on Java rakendamine Reactive Streams API mille eesmärk on sisuliselt lahendada vasturõhu probleem. Vasturõhk on andmete kogunemine, mis tekib siis, kui sissetulevate päringute määr on suurem kui rakenduse töötlemisvõime. Pikemas perspektiivis on see probleem, kuna rakendus lõpetab töötlemata andmete puhvri. See värskendus tähendab ajalõppude, viivituste ja alamklasside paremat käsitlemist.

Turvalisus on osa Java põhiidentiteedist. Sellisena toetus äsja heakskiidetud HTTP 2.0 RFC on tohutu pluss. Selle peale ehitati HTTP 2.0 RFC Google'i SPDY algoritm mis on juba hakanud vilja kandma, kiiruse paranemisega vahemikus 11,81% kuni 47,7% võrreldes eelmise HTTP 1.1 -ga. See kliendi API on täiendus HTTP põhiprotokollidele ja HttpURLConnection API -le, mis on vähemalt probleemne, kuna see loodi juba enne HTTP 1.

Koodivahemälu on alati olnud strateegia, mida on aastate jooksul rakenduste kiiremaks ja sujuvamaks muutmiseks kasutatud. Siiski pole see ilma piiranguteta ja see pole jäänud märkamatuks. Java 9 värskendus näitab selgelt, et JDK 9 jagab vahemällu salvestatud koodid väiksemateks osadeks, parandades seega üldist jõudlust. JDK 9 kasutab mittemeetodilise koodi vahelejätmiseks spetsiaalseid iteraatoreid; eraldada profileeritud, mitteprofiilitud ja meetodivaba kood; ja täideviimise aja võrdlusaluste parandamine.

Java 9 eelised

Paljude ettevõtete omanike jaoks pole Java 8 ja 9 vahel vahet. Arendaja jaoks on aga erinevusi. Need on Java SE 9 eelised eelkäijate ees.

  • Arenduskiirus suureneb oluliselt tänu moodulite süsteemile, mida pole mitte ainult lihtsam hallata ja siluda, vaid ka korduvkasutatav, mis tähendab, et te ei pea kogu koodi nullist kirjutama.
  • Rakenduste ressursitõhususe suurendamine alates modulatsioonist ja ka ressursside tõmbamise lihtsustamine, kuna arendajad võtavad ainult vajalikud moodulid, mitte kogu JRE.
  • Koodijuppide reaalajas analüüs, näiteks mikro võrdlusalused kasutatakse väikeste kooditükkide toimivuse uurimiseks.

Allikad

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 õpetus