Java8 kumpara sa Java9

Java8 Vs Java9



Java 8 vs Java 9: ​​Mga Pagpapabuti sa Java 9 na Kailangan Mong Malaman

Maraming mga developer ang magpapunta sa Java upang lumikha ng mga application. Tulad ng alam nating lahat, ang Java ay hindi kapani-paniwalang maraming nalalaman, madaling gamitin, ligtas, maaasahan at higit sa lahat, independiyenteng ito sa platform. Ang Java ay may isang sumusunod na higit sa 6.5 milyong mga developer sa buong mundo. Tulad ng naturan, ito ay ang perpektong wika na gagamitin dahil ang sanggunian materyal ay masagana din.

Gayunpaman, ang Java ay patuloy na lumalaki at nagbabago sa mga nakaraang taon. Nilikha ng Sun Microsystems noong 1995 , Patuloy na pinatunayan ng Java ang pagiging maaasahan nito. Ang dating pagbuo ng Java na ginamit mula pa noong Marso 18, 2014, ay ang Java SE 8. Nang mailabas ito, sinabi ng mga kritiko na ito ay isang likhang sining, isang pagpapalabas ng mga daloy ng mga pagbabago sa mga API. Ngayon ay mayroong isang bagong bata sa bloke. Ang sariwang naka-print na Java 9 ay sa wakas ay narito. Ipinakita noong Setyembre 21, 2017 , Inaasahang maaalog ng Java SE 9 ang paraan ng paggawa ng mga bagay at ang paraan ng paglikha ng mga application ng mga developer.







Dahil sa hindi kapani-paniwala na liksi at kakayahang magamit ng Java 8, lumikha ang mga negosyo ng hindi kapani-paniwala na mga solusyon para sa mga industriya tulad ng pangangalaga ng kalusugan, fintech, at iba pang mga pangunahing sektor. Ang Java 9, sa kabilang banda, ay nangangako na maitatayo iyon at maghatid ng ganap na mga bagong pagpapaandar sa mga developer.



Kaya, tingnan natin kung ano ang bago sa Java 9.



Project Jigsaw

Ito ang isa sa mga highlight ng Java 9. Talaga, ang proyekto na lagari ang ibinigay sa pangalan modularization ng Java. Tulad ng mga piraso ng jigsaw na magkakasama sa piraso upang lumikha ng isang mas malaking larawan, gayon din ang modularity ng Java 9. Nangangahulugan ito na ang code ay pinaghiwa-hiwalay sa mga bahagi (module) dahil sa mga gawain o pagpapaandar na naisakatuparan. Ito ay isang malaking hakbang pasulong dahil ang modularization ay hindi lamang ginagawang mas kumportable ang muling paggamit ng code, ngunit din ang pamamahala at pag-debug ay prangka. Dahil dito, nalaman namin na ang mga developer ay magkakaroon ng mas madaling oras sa paglikha ng mga application sa Java 9 kaysa sa anumang iba pang mga nakaraang pagbuo.





Ang isa pang pakinabang ng modularization ay ang mga developer ay maaari na lumikha ng magaan, nasusukat na mga application. Lalo na sa patuloy na paglaki ng Internet of Things, mahahanap namin ang mas maraming mga nasabing app na nakasulat sa Java.

JEP 222: jshell : Ang Java Shell

Nagtatampok ang Java 9 ng bagong tool na read-eval-print loop (REPL). Matapos ang pag-unlad yugto nito sa ilalim Karapatan sa Proyekto ang tampok na ito ay sa wakas ay pinakawalan sa publiko. Ang bagong tampok na ito ay isang interactive na tool na ginagamit upang subukan ang mga expression, pahayag, at deklarasyon na nakasulat sa Java. Ang pangunahing layunin ng JShell API at tool ay upang bigyan ang developer ng isang pagkakataon na subukan ang mga tampok na nabanggit sa itaas sa shell state. Pangunahin itong mabilis na pag-coding at pagsisiyasat, kung saan ang mga expression at pahayag ay hindi kailangang nasa loob ng isang pamamaraan at mga pamamaraan sa pagliko, hindi kailangang nasa loob ng isang klase. Sa ganitong paraan maaaring mabilis na suriin ng isang developer ang mga piraso ng code at makita kung magdadala sila ng nais na epekto.



Ang tool na jshell ay magkakaroon ng isang interface ng linya ng utos na may mga sumusunod na tampok:

  • Na-configure ang paunang natukoy na kahulugan at pag-import.
  • Isang kasaysayan na may mga kakayahan sa pag-edit
  • Awtomatikong pagdaragdag ng mga kinakailangang mga semicolon ng terminal

Mga pagpapabuti ng tagatala

Upang matiyak na tumatakbo ang mga application nang mas mabilis, ang Java 9 ay nagpatala ng isang bagong teknolohiya na tinatawag na naunang pagsasama (AoT) na pagtitipon. Ang teknolohiyang ito kahit na sa mga pang-eksperimentong yugto nito, ginagawang posible para sa mga klase ng Java na maiipon sa katutubong code kahit na bago ito mailunsad sa mga virtual machine. Ang mga posibilidad na ito ay walang katapusan. Gayunpaman, ang mas agarang paggamit ng teknolohiyang ito ay ang pagpapabuti ng oras ng pagsisimula para sa malaki at maliit na mga app nang walang anumang pumipigil sa rurok na pagganap.

Sa pagbabalik tanaw, ang Java 8 ay gumagamit ng Just-in-time (JIT) na mga compiler. Ang mga tagataguyod na ito ay mabilis ngunit gumugugol ng kaunting oras bago mag-init. Maaari itong maging walang katuturan para sa mas maliit na mga programa o app dahil walang gaanong code na maipagsama. Gayunpaman, para sa mas malaking mga app, iba ang pagsasalaysay. Ang pag-init ng isang saktong-oras na nangangailangan ng tagatala, nangangahulugang ang ilang mga pamamaraan ay hindi nai-compile kaya't pinahina ang pagganap ng app.

Ang pangalawang yugto sa paglalagay ng matalinong compilation ay ang pagpapabuti ng kakayahang dalhin at katatagan ng tool na Javac. Ang pagpapahusay ng tool na ito ay nagbibigay-daan sa ito upang magamit nang direkta sa JVM (Java Virtual Machine) bilang default na setting. Bukod sa na, ang tool ay na-generalize sa isang paraan na nagpapahintulot sa mga developer na gamitin ito kahit sa labas ng kapaligiran ng JDK. Para sa mga tagabuo ito ay isang malaking pakikitungo dahil ang Java ay maaaring magamit sa mas malalaking proyekto na maaaring madaling tanggapin nang hindi nag-aalala tungkol sa pagiging tugma. Ang isa pang mahalagang pag-update ay ang paatras na pagiging tugma ng Javac compiler na ang nag-iisang pag-andar ay upang mag-ipon ng mga app at program na nilikha gamit ang Java 9 upang tumakbo din sa mas matandang mga bersyon ng Java.

Mas mahusay na pag-back ng JavaScript

Habang ang JavaScript ay patuloy na nakakakuha ng momentum at naging paboritong para sa marami, ginawang posible ng JDK 9 na i-embed ang JavaScript sa mga Java app. Ang lahat ng ito ay ginagawa sa tulong ng Project rhinoceros na ang pangunahing layunin ay lumikha ng mataas na pagganap ngunit magaan ang JavaScript runtime sa Java. Siyempre ito ay naihatid nang magbigay sila ng isang JavaScript engine sa JDK bersyon 8. Ngayon sa bersyon 9, mayroong isang parser API na ang target ay ang ECMAScript syntax order ng Nashorn. Ang ginagawa ng API na ito ay upang paganahin ang pagtatasa ng ECMAScript code ng mga balangkas ng server at mga IDE nang hindi kinakailangang umasa sa mga panloob na klase ng pagpapatupad ng Project Nashorn.

G1 bilang basurero

Taliwas sa paniniwala ng mga tao, ang Java ay wala, ngunit apat na nangangalap ng basura. Ang mga kolektor ng basura na ito ay hindi nilikha pantay at tulad nito, ang pagpili ng maling ibig sabihin ay pagkakaroon ng mga isyu sa pagganap sa application. Sa Java 8, ang default na kolektor ng basura ay ang Parallel / Throughput Collector. Ang basurang kolektor na ito ay napalitan ng hinalinhan nito na Garbage-first collector (G1). Dahil ang kolektor ng G1 ay idinisenyo upang suportahan ang mga bunton na mas malaki sa 4GB nang mahusay, ito ay ang perpektong basurero para sa parehong maliliit at malalaking aplikasyon.

Mga pag-update sa API

Sa bagong bersyon ng Java development kit, maraming mga pag-update ang nagawa sa mga API at tatalakayin namin ang pinakapansin-pansin.

Ang pinakauna ay ang mga pag-update ng concurrency ng Java 9 na mayroong Java.util.concurrent.Flow at CompletableFuture. Nilalayon sa paglutas ng problema na back-pressure. Ang daloy ay ang pagpapatupad ng Java ng Mga Reaktibo na Stream ng API na mahalagang naglalayong malutas ang problema sa backpressure. Ang back pressure ay ang pagbuo ng data na nangyayari kapag ang rate ng mga papasok na kahilingan ay mas malaki kaysa sa kakayahan sa pagproseso ng application. Sa pangmatagalan, ito ay isang problema dahil ang application ay nagtapos sa isang buffer ng hindi naprosesong data. Ang pag-update na ito ay nangangahulugang mas mahusay na paghawak ng mga timeout, pagkaantala, at subclassing.

Ang seguridad ay bahagi ng pangunahing pagkakakilanlan ng Java. Tulad nito, suporta para sa bagong naaprubahan HTTP 2.0 Ang RFC ay isang malaking dagdag. Ang HTTP 2.0 RFC ay itinayo sa tuktok ng SPDY algorithm ng Google na nagsimula nang magbunga kasama ang bilis ng pagpapabuti na mula 11.81% hanggang 47.7% mula sa nakaraang HTTP 1.1. Ang client API na ito ay isang pag-upgrade sa mga pangunahing mga HTTP na protokol at ang HttpURLConnection API na may problema, upang masabi kahit kailan ito ginawa kahit bago ang HTTP 1.

Ang pag-cache ng code ay palaging isang diskarte na ginamit upang gawing mas mabilis at mas maayos ang mga application sa mga nakaraang taon. Gayunpaman, hindi ito walang mga limitasyon, at hindi ito napapansin. Ang isang pag-update sa Java 9 ay malinaw na ipinapakita ang JDK 9 na hinahati ang mga naka-cache na code sa mas maliit na mga bahagi sa gayon ay nagpapabuti ng pangkalahatang pagganap. Ang JDK 9 ay gumagamit ng mga espesyal na iterator upang laktawan ang di-pamamaraan na code; upang paghiwalayin ang profiled, non-profiled at non-method code; at pagpapabuti ng ilang mga benchmark para sa oras ng pagpapatupad.

Mga Pakinabang ng Java 9

Sa maraming mga may-ari ng negosyo, walang pagkakaiba sa pagitan ng Java 8 at 9. Gayunpaman, para sa developer, mayroong isang mundo ng pagkakaiba. Ito ang mga benepisyo na mayroon ang Java SE 9 sa mga hinalinhan.

  • Ang bilis ng pag-unlad ay makabuluhang nadagdagan salamat sa system ng mga module na hindi lamang mas madaling pamahalaan at ma-debug, ngunit magagamit din na nangangahulugang hindi mo kailangang isulat ang buong code mula sa simula.
  • Pagpapahusay ng pagiging epektibo ng mapagkukunan para sa mga application mula sa modularization at paggawa din ng paghugot ng mapagkukunan upang maging mas simple dahil ang mga developer ay kukuha lamang ng mga module na kinakailangan sa halip na buong JRE.
  • Real-time na pagtatasa ng mga snippet ng code tulad ng mga micro benchmark ginamit upang tingnan ang pagganap ng maliliit na piraso ng code.

Pinagmulan

http://openjdk.java.net/jeps/251
https://www.romexsoft.com/blog/java-8-vs-java-9/
https://blogs.oracle.com/java/feature-in-java-8-and-9
https://dzone.com/articles/5-feature-in-java-9-that-will-change-how-you-deve

Eclipse Java Tutorial