Java8 vs Java9

Java8 Vs Java9



Java 8 vs Java 9: ​​Java 9: ​​n parannukset, jotka sinun on tiedettävä

Monet kehittäjät kääntyvät Javan puoleen sovellusten luomiseksi. Kuten me kaikki tiedämme, Java on uskomattoman monipuolinen, helppokäyttöinen, turvallinen, luotettava ja ennen kaikkea se on alustasta riippumaton. Javalla on yli 6,5 miljoonaa kehittäjää maailmanlaajuisesti. Sellaisena se on täydellinen kieli käytettäväksi, koska myös viitemateriaalia on runsaasti.

Siitä huolimatta Java on kasvanut ja kehittynyt vuosien varrella. Sun Microsystemsin luoma vuonna 1995 , Java on edelleen osoittanut luotettavuuttaan. Edellinen Java -versio, joka on ollut käytössä 18. maaliskuuta 2014 jälkeen, oli Java SE 8. Kun se julkistettiin, kriitikot sanoivat sen olevan taideteos, sovellusliittymien muutosvirtojen julkaisu. Nyt korttelissa on uusi lapsi. Juuri valmistettu Java 9 on vihdoin täällä. Paljastettu 21. syyskuuta 2017 , Java SE 9: n odotetaan horjuttavan tapaamme tehdä asioita ja tapaa, jolla kehittäjät luovat sovelluksia.







Java 8: n uskomattoman ketteryyden ja monipuolisuuden ansiosta yritykset loivat uskomattomia ratkaisuja esimerkiksi terveydenhuollolle, fintechille ja muille tärkeille aloille. Java 9 puolestaan ​​lupaa rakentaa sen päälle ja tarjota kehittäjille täysin uusia toimintoja.



Katsotaanpa siis, mitä uutta Java 9: ​​ssä on.



Projekti palapeli

Tämä on yksi Java 9: ​​n kohokohdista. Periaatteessa projektin palapeli on nimi modulaarisuus Java. Kun palapelin palaset kokoontuvat pala palalta muodostaen yhden suuremman kuvan, niin myös Java 9: ​​n modulaarisuus. Tämä tarkoittaa, että koodi on jaettu osiin (moduuleihin) suoritettavien tehtävien tai toimintojen vuoksi. Tämä on valtava askel eteenpäin, koska modulaarisuus ei ainoastaan ​​tee koodin uudelleenkäytettävyydestä paljon mukavampaa, vaan myös hallinta ja virheenkorjaus on yksinkertaista. Tästä syystä huomaamme, että kehittäjien on helpompi luoda sovelluksia Java 9: ​​llä kuin millään muulla aikaisemmalla koontiversiolla.





Toinen modulaarisuuden etu on, että kehittäjät voivat nyt luoda kevyitä, skaalautuvia sovelluksia. Etenkin esineiden internetin kasvun myötä löydämme lisää tällaisia ​​Java -sovelluksia.

JEP 222: jshell : Java -kuori

Java 9 sisältää uuden REPL (read-eval-print loop) -työkalun. Sen jälkeen, kun se on kehitysvaiheessa Projekti oikein tämä ominaisuus on vihdoin julkaistu yleisölle. Tämä uusi ominaisuus on vuorovaikutteinen työkalu, jota käytetään Javalla kirjoitettujen lausekkeiden, lausuntojen ja ilmoitusten testaamiseen. JShell -sovellusliittymän ja -työkalun päätavoite on antaa kehittäjälle mahdollisuus testata yllä mainittuja ominaisuuksia kuoritilassa. Tämä on ensisijaisesti nopeaa koodausta ja tutkimusta, jolloin lausekkeiden ja lausuntojen ei tarvitse olla menetelmän sisällä ja menetelmät vuorostaan, ei tarvitse olla luokan sisällä. Näin kehittäjä voi nopeasti analysoida koodinpalasia ja nähdä, tuovatko ne halutun vaikutuksen.



Jshell -työkalulla on komentoriviliitäntä, jossa on seuraavat ominaisuudet:

  • Määritettävissä oleva ennalta määritetty määritelmä ja tuonti.
  • Historia muokkaustoiminnoilla
  • Tarvittavien päätepisteiden automaattinen lisääminen

Kääntäjän parannukset

Jotta sovellukset toimisivat nopeammin, Java 9 on ottanut käyttöön uuden tekniikan, jota kutsutaan ennen aikojen (AoT) kokoamista. Tämä tekniikka, vaikkakin kokeellisissa vaiheissa, mahdollistaa Java -luokkien kääntämisen natiivikoodiksi jo ennen sen julkaisua virtuaalikoneissa. Tämän mahdollisuudet ovat rajattomat. Tämän tekniikan välitön käyttö parantaa kuitenkin suurten ja pienten sovellusten käynnistymisaikaa ilman, että ne estävät suorituskykyä.

Jälkeenpäin ajateltuna Java 8 käyttää Just-in-time (JIT)-kääntäjiä. Nämä kääntäjät ovat nopeita, mutta kestää hieman enemmän aikaa ennen kuin lämpeneminen. Tämä voi olla merkityksetöntä pienemmille ohjelmille tai sovelluksille, koska koottavaa koodia ei ole paljon. Suurempien sovellusten osalta kertomus on kuitenkin aivan erilainen. Juuri oikea-aikaisen kääntäjän lämmittäminen tarkoittaa, että joitain menetelmiä ei koota, mikä heikentää sovelluksen suorituskykyä.

Toinen vaihe älykkään kokoamisen käyttöönotossa on Javac -työkalun siirrettävyyden ja vakauden parantaminen. Tämän työkalun parantaminen mahdollistaa sen käytön oletusasetuksena suoraan JVM: ssä (Java Virtual Machine). Lisäksi työkalu on yleistetty siten, että kehittäjät voivat käyttää sitä myös JDK -ympäristön ulkopuolella. Kehittäjille tämä on iso juttu, koska Javaa voidaan käyttää suuremmissa projekteissa, jotka voidaan helposti ottaa käyttöön ilman huolta yhteensopivuudesta. Toinen tärkeä päivitys on Javac -kääntäjän taaksepäin yhteensopivuus, jonka ainoa tehtävä on koota Java 9: ​​llä luotuja sovelluksia ja ohjelmia toimimaan myös vanhemmilla Java -versioilla.

Parempi JavaScript -tuki

Kun JavaScript saa jatkuvasti vauhtia ja siitä tulee monien suosikki, JDK 9 on mahdollistanut JavaScriptin upottamisen Java -sovelluksiin. Kaikki tämä tehdään sen avulla Projekti sarvikuono jonka päätavoitteena oli luoda tehokas, mutta kevyt JavaScript -ajonaika Java: lle. Tämä tietysti toimitettiin, kun he tarjosivat JavaScript -moottorin JDK -versiossa 8. Nyt versiossa 9 on jäsennysrajapinta, jonka kohde on Nashornin ECMAScript -syntaksijärjestys. Tämä sovellusliittymä mahdollistaa ECMAScript-koodin analysoinnin palvelinpuolen kehysten ja IDE: iden avulla ilman, että sinun tarvitsee luottaa Project Nashornin sisäisiin toteutusluokkiin.

G1 roskien kerääjäksi

Toisin kuin yleisesti uskotaan, Javalla ei ole yhtä, vaan neljä roskienkeräintä. Nämä roskienkerääjät eivät ole tasavertaisia, ja siksi väärän valitseminen tarkoitti suorituskykyongelmia sovelluksessa. Java 8: ssa oletusjätteenkeräin oli Parallel / Throughput Collector. Tämä roskakeräin on korvattu sen edeltäjällä, Garbage-first-keräilijällä (G1). Koska G1-keräin on suunniteltu tukemaan tehokkaasti yli 4 Gt: n kasoja, se on täydellinen jätteiden kerääjä sekä pieniin että suuriin sovelluksiin.

API -päivitykset

Tässä Java -kehityssarjan uudessa versiossa sovellusliittymiin on tehty useita päivityksiä, ja keskustelemme merkittävimmistä.

Aivan ensimmäinen on Java 9: ​​n rinnakkaispäivitykset, joissa on Java.util.concurrent.Flow ja CompletableFuture. Tarkoituksena on ratkaista ongelma, joka on vastapaine. Flow on Java: n toteutus Reactive Streams -sovellusliittymä jonka tarkoituksena on ratkaista vastapaineongelma. Vastapaine on tiedon kerääntymistä, joka tapahtuu, kun saapuvien pyyntöjen määrä on suurempi kuin sovelluksen käsittelykyky. Pitkällä aikavälillä tämä on ongelma, koska sovellus päätyy käsittelemättömän datan puskuriin. Tämä päivitys tarkoittaa aikakatkaisujen, viiveiden ja alaluokittelun parempaa käsittelyä.

Suojaus on osa Javan ydinidentiteettiä. Sellaisena tuki äskettäin hyväksytyille HTTP 2.0 RFC on iso plussa. Päälle rakennettiin HTTP 2.0 RFC Googlen SPDY -algoritmi joka on jo alkanut kantaa hedelmää nopeuden parantuessa 11,81%: sta 47,7%: iin edellisestä HTTP 1.1: stä. Tämä asiakassovellusliittymä on päivitys HTTP -ydinprotokolliin ja HttpURLConnection -sovellusliittymään, mikä on ongelmallista, koska se on tehty jo ennen HTTP 1: tä.

Koodin välimuisti on aina ollut strategia, jota on käytetty sovellusten nopeuttamiseen ja sujuvuuteen vuosien varrella. Se ei kuitenkaan ole ilman rajoituksia, eikä tämä ole jäänyt huomaamatta. Java 9: ​​n päivitys osoittaa selvästi, että JDK 9 jakaa välimuistissa olevat koodit pienempiin osiin, mikä parantaa yleistä suorituskykyä. JDK 9 ohittaa ei-metodikoodin käyttämällä erityisiä iteraattoreita; erottaa profiilit, ei-profiilit ja muut kuin menetelmäkoodit; ja joidenkin suoritusajan vertailuarvojen parantaminen.

Java 9: ​​n edut

Monille yrittäjille Java 8: n ja 9: n välillä ei ole eroa. Kehittäjälle on kuitenkin olemassa ero. Nämä ovat Java SE 9: n etuja edeltäjiinsä verrattuna.

  • Kehitysnopeus kasvaa merkittävästi moduulijärjestelmän ansiosta, joka ei ole vain helpompi hallita ja korjata, vaan myös uudelleenkäytettävä, joten sinun ei tarvitse kirjoittaa koko koodia alusta.
  • Sovellusten resurssitehokkuuden parantaminen modulaarisuudesta ja resurssien vetämisen yksinkertaistaminen, koska kehittäjät ottavat vain tarvittavat moduulit koko JRE: n sijasta.
  • Reaaliaikainen analyysi koodinpätkistä, kuten mikro -vertailuarvot käytetään tutkimaan pienten koodikappaleiden suorituskykyä.

Lähteet

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 -opetusohjelma