Java8 vs Java9

Java8 Vs Java9



Java 8 vs Java 9: ​​Poboljšanja u Javi 9 koja morate znati

Mnogi programeri obratit će se Javi za izradu aplikacija. Kao što svi znamo, Java je nevjerojatno svestrana, laka za korištenje, sigurna, pouzdana i, prije svega, neovisna je o platformi. Java ima više od 6,5 milijuna programera širom svijeta. Kao takav, to je savršen jezik za upotrebu jer je i referentni materijal u izobilju.

Ipak, Java je s godinama nastavila rasti i razvijati se. Kreirao Sun Microsystems 1995 , Java je nastavila dokazivati ​​svoju pouzdanost. Prethodna verzija Jave koja se koristila od 18. ožujka 2014. bila je Java SE 8. Kad je predstavljena, kritičari su rekli da je to umjetničko djelo, objavljivanje niza promjena API -ja. Sada je u bloku novo dijete. Svježe kovana Java 9 napokon je stigla. Predstavljeno 21. rujna 2017 , Očekuje se da će Java SE 9 uzdrmati način na koji radimo i način na koji programeri stvaraju aplikacije.







Zbog nevjerojatne agilnosti i svestranosti Jave 8, tvrtke su stvorile nevjerojatna rješenja za industrije kao što su zdravstvo, fintech i drugi veliki sektori. Java 9, s druge strane, obećava da će se nadograđivati ​​na tome i programerima isporučiti potpuno nove funkcionalnosti.



Dakle, pogledajmo što je novo u Javi 9.



Projekt Jigsaw

Ovo je jedan od vrhunaca Jave 9. U osnovi je projektna slagalica naziv za modularizacija Jave. Kako se dijelovi slagalice sastavljaju komad po dio kako bi stvorili jednu veću sliku, tako se i modularnost Jave 9. To znači da je kôd podijeljen na dijelove (module) zbog zadataka ili funkcionalnosti koje treba izvršiti. Ovo je veliki korak naprijed jer modularizacija ne samo da čini ponovnu upotrebu koda mnogo ugodnijom, već je i upravljanje i ispravljanje pogrešaka jednostavno. Zbog toga otkrivamo da će razvojni programeri lakše stvarati aplikacije s Javom 9 nego s bilo kojom drugom prethodnom verzijom.





Još jedna prednost modularizacije je ta što programeri sada mogu stvarati lagane, skalabilne aplikacije. Osobito s rastom Interneta stvari, pronaći ćemo još takvih aplikacija napisanih na Javi.

JEP 222: jshell : Java ljuska

Java 9 sadrži novi alat REPL (read-eval-print loop). Nakon što je u svojoj razvojnoj fazi pod Projekt u pravu ova je značajka konačno objavljena u javnosti. Ova nova značajka interaktivni je alat koji se koristi za testiranje izraza, izraza i deklaracija napisanih na Javi. Glavni cilj JShell API -ja i alata je dati razvojnom programeru priliku da isproba gore navedene značajke u stanju ljuske. Ovo je prvenstveno brzo kodiranje i istraživanje, pri čemu izrazi i izrazi ne moraju biti unutar metode i metode, ne moraju biti unutar klase. Na ovaj način programer može brzo analizirati komade koda i vidjeti hoće li donijeti željeni učinak.



Alat jshell imat će sučelje naredbenog retka sa sljedećim značajkama:

  • Unaprijed definirana definicija i uvoz koji se mogu konfigurirati.
  • Povijest s mogućnostima uređivanja
  • Automatsko dodavanje potrebnih terminalnih zareza

Poboljšanja prevoditelja

Kako bi se aplikacije brže pokrenule, Java 9 donijela je novu tehnologiju koja se naziva unaprijed (AoT) kompilacija. Ova tehnologija, iako u svojim eksperimentalnim fazama, omogućuje da se Java klase pretoče u izvorni kod čak i prije nego što se pokrenu na virtualnim strojevima. Mogućnosti ovoga su beskrajne. Međutim, neposrednija uporaba ove tehnologije poboljšava vrijeme pokretanja velikih i malih aplikacija bez ikakvih smetnji u vrhunskim performansama.

U retrospektivi, Java 8 koristi Just-in-time (JIT) kompajlere. Ovi su kompajleri brzi, ali im treba malo više vremena prije zagrijavanja. To može biti beznačajno za manje programe ili aplikacije jer nema mnogo koda za kompajliranje. Međutim, za veće aplikacije, priča je sasvim drugačija. Zagrijavanje koje je prevoditelju potrebno upravo na vrijeme znači da se neke metode ne sastavljaju, što slabi performanse aplikacije.

Druga faza u implementaciji pametne kompilacije je poboljšanje prenosivosti i stabilnosti alata Javac. Poboljšanje ovog alata omogućuje njegovu upotrebu izravno u JVM -u (Java Virtual Machine) kao zadanu postavku. Osim toga, alat je generaliziran na takav način da omogućuje programerima da ga koriste čak i izvan JDK okruženja. Za programere ovo je velika stvar jer se Java može koristiti u većim projektima koji se lako mogu prilagoditi bez brige o kompatibilnosti. Još jedno važno ažuriranje je kompatibilnost unatrag Javac prevoditelja čija je jedina funkcija sastavljanje aplikacija i programa stvorenih pomoću Jave 9 za izvođenje i na starijim verzijama Jave.

Bolja JavaScript podrška

Kako JavaScript nastavlja dobivati ​​zamah i postaje omiljen mnogima, JDK 9 omogućio je ugradnju JavaScripta u Java aplikacije. Sve se to radi uz pomoć Projekt nosorog čiji je glavni cilj bio stvoriti visoke performanse, ali lagano vrijeme izvođenja JavaScripta u Javi. To je, naravno, isporučeno kada su dali JavaScript mehanizam u JDK verziji 8. Sada u verziji 9 postoji parser API čija je meta Nashornov redoslijed sintakse ECMAScript. Ono što ovaj API radi jest omogućiti analizu ECMAScript koda prema poslužiteljskim okvirima i IDE-ima bez oslanjanja na interne klase implementacije projekta Nashorn.

G1 kao sakupljač smeća

Suprotno uvriježenom mišljenju, Java nema jednog, već četiri skupljača smeća. Ovi sakupljači smeća nisu jednaki i kao takvi, odabir pogrešnog znači da imate problema s performansama u aplikaciji. U Javi 8, zadani sakupljač smeća bio je Paralelni / Propusni sakupljač. Ovaj sakupljač smeća zamijenjen je svojim prethodnikom sakupljačem-smećem (G1). Budući da je sakupljač G1 dizajniran da učinkovito podržava hrpe veće od 4 GB, savršen je sakupljač smeća i za male i za velike aplikacije.

Ažuriranja API -ja

U ovoj novoj verziji Java razvojnog kompleta izvršeno je nekoliko ažuriranja API -ja, a mi ćemo razgovarati o najznačajnijim.

Prva su ažuriranja Java 9 istodobnosti koja imaju Java.util.concurrent.Flow i CompletableFuture. Usmjeren na rješavanje problema povratnog pritiska. Flow je Java -ina implementacija API za reaktivne streamove koji u biti ima za cilj riješiti problem povratnog tlaka. Povratni pritisak je nakupljanje podataka koje se događa kada je stopa dolaznih zahtjeva veća od sposobnosti obrade aplikacije. Dugoročno, to je problem jer aplikacija završava s međuspremnikom neobrađenih podataka. Ovo će ažuriranje značiti bolje upravljanje vremenskim ograničenjima, kašnjenjima i podrazredima.

Sigurnost je dio Javainog temeljnog identiteta. Kao takva, podrška za novoodobrene HTTP 2.0 RFC je veliki plus. HTTP 2.0 RFC izgrađen je na vrhu Googleov algoritam SPDY koji je već počeo uroditi plodovima s poboljšanjima brzine u rasponu od 11,81% do 47,7% u odnosu na prethodni HTTP 1.1. Ovaj klijentski API nadogradnja je na osnovne HTTP protokole i HttpURLConnection API koji je u najmanju ruku problematičan budući da je napravljen čak i prije HTTP 1.

Predmemoriranje koda oduvijek je strategija koja se koristi kako bi aplikacije učinile bržim i glatkijim tijekom godina. Međutim, nije bez ograničenja i to nije ostalo nezapaženo. Ažuriranje u Javi 9 jasno prikazuje JDK 9 koji dijeli predmemorirane kodove na manje dijelove čime se poboljšavaju ukupne performanse. JDK 9 koristi posebne iteratore za preskakanje koda bez metode; odvojiti profilirani, neprofilirani i nemetodni kod; te poboljšanje nekih mjerila za vrijeme izvođenja.

Prednosti Jave 9

Za mnoge vlasnike tvrtki nema razlike između Jave 8 i 9. Međutim, za programere postoji svijet razlika. Ovo su prednosti koje Java SE 9 ima u odnosu na svoje prethodnike.

  • Brzina razvoja bit će značajno povećana zahvaljujući sustavu modula koji ne samo da su lakši za upravljanje i ispravljanje pogrešaka, već i za višekratnu upotrebu, što znači da ne morate pisati cijeli kôd od početka.
  • Poboljšanje učinkovitosti resursa za aplikacije iz modularizacije, a također i pojednostavljivanje izvlačenja resursa jer će programeri uzeti samo potrebne module umjesto cijelog JRE -a.
  • Analiza isječaka koda u stvarnom vremenu, kao što je mikro mjerila koristi se za ispitivanje performansi malih dijelova koda.

Izvori

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