„Java8“ prieš „Java9“

Java8 Vs Java9



„Java 8“ prieš „Java 9“: „Java 9“ patobulinimai, kuriuos reikia žinoti

Daugelis kūrėjų kreipiasi į „Java“, kad sukurtų programas. Kaip visi žinome, „Java“ yra neįtikėtinai universali, paprasta naudoti, saugi, patikima ir, svarbiausia, nepriklauso nuo platformos. „Java“ visame pasaulyje turi daugiau nei 6,5 milijono kūrėjų. Todėl tai yra tobula kalba, nes taip pat gausu informacinės medžiagos.

Nepaisant to, bėgant metams „Java“ toliau augo ir vystėsi. Sukūrė „Sun Microsystems“ 1995 m , „Java“ toliau įrodė savo patikimumą. Ankstesnė „Java“ versija, naudojama nuo 2014 m. Kovo 18 d., Buvo „Java SE 8.“ Kai ji buvo pristatyta, kritikai teigė, kad tai yra meno kūrinys, išleistas API pakeitimų srautas. Dabar kvartale yra naujas vaikas. Pagaliau čia yra ką tik kaldinta „Java 9“. Pristatytas 2017 m. Rugsėjo 21 d Tikimasi, kad „Java SE 9“ sukrės tai, kaip mes darome dalykus ir kaip kūrėjai kuria programas.







Dėl neįtikėtino „Java 8“ judrumo ir universalumo įmonės sukūrė neįtikėtinus sprendimus tokioms pramonės šakoms kaip sveikatos priežiūra, „fintech“ ir kiti pagrindiniai sektoriai. Kita vertus, „Java 9“ žada tuo remtis ir kūrėjams suteikti visiškai naujų funkcijų.



Taigi, pažvelkime, kas naujo „Java 9“.



Projektas Jigsaw

Tai yra vienas iš svarbiausių „Java 9“ akcentų. Iš esmės, projekto dėlionė yra pavadinimas moduliavimas iš „Java“. Kadangi dėlionės detalės po truputį susirenka, kad susidarytų vienas didesnis vaizdas, taip pat ir „Java 9“ moduliarumas. Tai reiškia, kad kodas yra suskaidytas į dalis (modulius) dėl atliekamų užduočių ar funkcijų. Tai didžiulis žingsnis į priekį, nes moduliavimas ne tik leidžia daug patogiau naudoti kodą, bet ir tvarkyti bei derinti yra paprasta. Dėl šios priežasties pastebime, kad kūrėjams bus lengviau kurti programas naudojant „Java 9“, nei naudojant bet kurią kitą ankstesnę versiją.





Kitas modulizacijos pranašumas yra tas, kad kūrėjai dabar gali sukurti lengvas, keičiamo dydžio programas. Ypač augant daiktų internetui, rasime daugiau tokių programų, parašytų „Java“.

JEP 222: „jshell“ : „Java“ apvalkalas

„Java 9“ yra naujas skaitymo ir įvertinimo ciklo (REPL) įrankis. Po to, kai buvo savo vystymosi etape pagal Projektas teisus ši funkcija pagaliau buvo paskelbta visuomenei. Ši nauja funkcija yra interaktyvus įrankis, naudojamas „Java“ rašytoms išraiškoms, teiginiams ir deklaracijoms tikrinti. Pagrindinis „JShell“ API ir įrankio tikslas yra suteikti kūrėjui galimybę išbandyti aukščiau paminėtas funkcijas apvalkalo būsenoje. Tai visų pirma greitas kodavimas ir tyrimas, kai išraiškos ir teiginiai nebūtinai turi būti metodo ir metodų paeiliui, neturi būti klasėje. Tokiu būdu kūrėjas gali greitai išanalizuoti kodo fragmentus ir pamatyti, ar jie duos norimą efektą.



„Jshell“ įrankis turės komandų eilutės sąsają su šiomis funkcijomis:

  • Konfigūruojamas iš anksto apibrėžtas apibrėžimas ir importavimas.
  • Istorija su redagavimo galimybėmis
  • Automatinis būtinų terminalų kabliataškių pridėjimas

Kompiliatoriaus patobulinimai

Kad programos veiktų greičiau, „Java 9“ įtraukė naują technologiją, vadinamą „prieš laiką“ (AoT) kompiliavimu. Ši technologija, nors ir eksperimentiniais etapais, leidžia „Java“ klases surinkti į savąjį kodą dar prieš paleidžiant jį virtualiose mašinose. Šios galimybės yra begalinės. Tačiau kuo skubiau naudojamasi šia technologija, tai sutrumpina didelių ir mažų programų paleidimo laiką, nesivaržant dėl ​​aukščiausio našumo.

Žvelgiant atgal, „Java 8“ naudoja „Just-in-time“ (JIT) kompiliatorius. Šie kompiliatoriai yra greiti, tačiau užtrunka šiek tiek daugiau laiko, kol sušyla. Tai gali būti nereikšminga mažesnėms programoms ar programoms, nes nėra daug kodo, kurį būtų galima surinkti. Tačiau didesnių programų atveju pasakojimas yra visiškai kitoks. Norint sušildyti kompiliatorių reikiamu laiku, kai kurie metodai nėra sukompiliuoti, todėl susilpnėja programos našumas.

Antrasis išmaniojo kompiliavimo diegimo etapas yra „Javac“ įrankio perkeliamumo ir stabilumo gerinimas. Patobulinus šį įrankį, jį galima naudoti tiesiogiai JVM („Java Virtual Machine“) kaip numatytąjį nustatymą. Be to, įrankis buvo apibendrintas taip, kad kūrėjai galėtų jį naudoti net ir už JDK aplinkos ribų. Kūrėjams tai yra didelis dalykas, nes „Java“ galima naudoti didesniems projektams, kuriuos galima lengvai pritaikyti, nesirūpinant dėl ​​suderinamumo. Kitas svarbus atnaujinimas yra atgalinis „Javac“ kompiliatoriaus suderinamumas, kurio vienintelė funkcija yra sudaryti programas ir programas, sukurtas naudojant „Java 9“, kad jos taip pat veiktų senesnėse „Java“ versijose.

Geresnis „JavaScript“ palaikymas

Kadangi „JavaScript“ ir toliau įgauna pagreitį ir tampa daugelio mėgstamiausia, „JDK 9“ leido įterpti „JavaScript“ į „Java“ programas. Visa tai daroma padedant Projektas raganosis kurio pagrindinis tikslas buvo sukurti aukštos kokybės, tačiau lengvą „JavaScript“ vykdymo laiką „Java“. Žinoma, tai buvo padaryta, kai jie pateikė „JavaScript“ variklį JDK 8 versijoje. Dabar 9 versijoje yra analizavimo API, kurios tikslas yra „Nashorn“ ECMAScript sintaksės tvarka. Ši API suteikia galimybę analizuoti ECMAScript kodą pagal serverio sistemas ir IDE, nesiremiant vidinėmis projekto „Nashorn“ diegimo klasėmis.

G1 kaip šiukšlių surinkėjas

Priešingai populiariam įsitikinimui, „Java“ turi ne vieną, o keturis šiukšlių surinkėjus. Šie šiukšlių surinkėjai nėra lygūs, todėl pasirinkus netinkamą, programoje kilo problemų dėl našumo. „Java 8“ numatytasis šiukšlių surinkėjas buvo lygiagretusis / pralaidumo surinkėjas. Šį šiukšlių surinkėją pakeitė jo pirmtakas „Šiukšlių surinkėjas“ (G1). Kadangi „G1“ surinkėjas buvo sukurtas taip, kad efektyviai palaikytų didesnes nei 4 GB krūvas, tai yra puikus šiukšlių surinkėjas tiek mažoms, tiek didelėms reikmėms.

API atnaujinimai

Šioje naujoje „Java“ kūrimo komplekto versijoje buvo atlikti keli API atnaujinimai ir aptarsime svarbiausius.

Pirmasis yra „Java 9“ lygiagrečių atnaujinimai, turintys „Java.util.concurrent.Flow“ ir „CompletableFuture“. Siekiama išspręsti priešpriešinio slėgio problemą. Srautas yra „Java“ diegimas „Reactive Streams“ API kuriuo iš esmės siekiama išspręsti priešslėgio problemą. Priešpriešinis slėgis yra duomenų kaupimasis, atsirandantis, kai gaunamų užklausų dažnis yra didesnis nei programos apdorojimo galimybės. Ilgainiui tai yra problema, nes programa baigia neapdorotų duomenų buferį. Šis naujinimas reiškia geresnį skirtojo laiko, vėlavimų ir paklasių tvarkymą.

Sauga yra pagrindinės „Java“ tapatybės dalis. Taigi parama naujai patvirtintiems HTTP 2.0 RFC yra didžiulis pliusas. HTTP 2.0 RFC buvo sukurtas ant viršaus „Google“ SPDY algoritmas kuris jau pradėjo duoti vaisių, kai greitis pagerėjo nuo 11,81% iki 47,7%, palyginti su ankstesniu HTTP 1.1. Ši kliento API yra pagrindinių HTTP protokolų ir „HttpURLConnection“ API naujovinimas, o tai yra problematiška, nes ji buvo sukurta dar prieš HTTP 1.

Kodų talpykla visada buvo strategija, naudojama bėgant metams, kad programos būtų greitesnės ir sklandesnės. Tačiau tai nėra be apribojimų ir tai neliko nepastebėta. „Java 9“ atnaujinimas aiškiai rodo, kad „JDK 9“ padalija talpykloje saugomus kodus į mažesnes dalis ir taip pagerina bendrą našumą. JDK 9 naudoja specialius iteratorius, kad praleistų ne metodo kodą; atskirti profilinį, neprofiliuotą ir nemetodinį kodą; ir pagerinti kai kuriuos vykdymo laiko gaires.

„Java 9“ pranašumai

Daugeliui verslo savininkų nėra skirtumo tarp „Java 8“ ir 9. Tačiau kūrėjui yra skirtumų pasaulis. Tai yra pranašumai, kuriuos „Java SE 9“ turi prieš savo pirmtakus.

  • Kurimo greitis bus žymiai padidintas dėl modulių sistemos, kurią ne tik lengviau valdyti ir derinti, bet ir pakartotinai naudoti, taigi jums nereikia rašyti viso kodo nuo nulio.
  • Padidinti programų išteklių efektyvumą moduliavimo būdu ir palengvinti išteklių pritraukimą, nes kūrėjai ims tik reikalingus modulius, o ne visą JRE.
  • Realaus laiko analizė kodo fragmentų, tokių kaip mikro etalonai naudojamas mažų kodo dalių veikimui įvertinti.

Šaltiniai

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“ pamoka