Programmēšana

Java 9 ir šeit: Viss, kas jums jāzina

Java 9 - formāli Java Platform Standard Edition 9. versija - beidzot ir klāt, un tā Java Development Kit (JDK) ir pieejams izstrādātājiem, lai lejupielādētu.

Tam ir vairākas svarīgas, ja pretrunīgas jaunas funkcijas, taču tas ir arī pēdējais vecā Java piegādes stila rinda.

Kur lejupielādēt Java 9 JDK

Oracle ir ievietojis Java SE 9 JDK un dokumentāciju, ko izstrādātāji var lejupielādēt.

Java 9 galvenās jaunās funkcijas

Debitējot gandrīz trīs gadus pēc Java SE 8, Java SE 9 ir veiktas vairākas galvenās arhitektūras izmaiņas, kā arī virkne uzlabojumu.

Java 9 modularitāte ir spēļu pārveidotājs

Jaunās, pretrunīgi vērtētās modularitātes iespējas, kuru pamatā ir Project Jigsaw, noteikti piesaistīs jaunāko Java veikalu interesi, kuri vēlas uzzināt, ko JDK 9 piedāvā šobrīd, pat ja konservatīvāki veikali nolemj gaidīt modularitātes nobriešanu.

Modularitāte - Java platformas moduļu sistēmas veidā - sadala JDK moduļu komplektā, lai tos apvienotu izpildes, kompilēšanas vai veidošanas laikā. Modularitāte tiek saukta par “tranzītiskām” izmaiņām, kas ļauj izprast dažādu moduļu atkarības.

Paredzams, ka Java 9 modularitāte ļauj izstrādātājiem vieglāk apkopot un uzturēt sarežģītas lietojumprogrammas. Turklāt tam vajadzētu padarīt Java labāk pielāgojamu mazākām ierīcēm, vienlaikus uzlabojot drošību un veiktspēju.

Java 9 modularitātes aspekti ietver lietojumprogrammu iepakošanu, paša JDK modulēšanu un avota koda pārkārtošanu moduļos. Veidošanas sistēma ir uzlabota, lai kompilētu moduļus un ieviestu moduļa robežas būvēšanas laikā. JDK un Java Runtime Environment (JRE) attēli tiek pārstrukturēti, lai tie darbotos ar moduļiem. Arī modularitātei tagad ir pieejamas JavaFX lietotāja saskarnes vadīklas un CSS API.

Tiek atbalstīta virkne konfigurāciju; rezultātā būtu jāuzlabo mērogojamība, drošība un lietojumprogrammu veiktspēja. Vieglāka Java mērogošana līdz mazām ierīcēm ir galvenais moduļu piepūles virzītājspēks.

Izmantojot modularitāti, izstrādātāji varēs labāk izveidot un uzturēt bibliotēkas un lielas lietojumprogrammas gan Java SE (Standard Edition), gan Java EE (Enterprise Edition). Bet Java 9 izstrādes laikā Oracle, IBM, Red Hat un citiem bija lielas nesaskaņas par to, kā tieši veikt šādas radikālas izmaiņas platformā. Pati moduļu sistēma tika noraidīta maijā, un pēc progresa to apstiprināja otrajā balsojumā jūnijā.

Pat ja vienojas galvenie Java pārdevēji, joprojām pastāv strīdi par to, vai modularitāte Java izstrādātājiem dos daudz laba, un daži eksperti saka jā, bet citi - nē. Neatkarīgi no tā, Java 9 tagad ir modulēts.

Lai atvieglotu migrēšanu uz modulētu Java 9, Java 9 ļauj nelegāli atspoguļot piekļuvi kodam klases ceļā, ko JRE izmanto, lai meklētu klases un resursu failus. Pēc Java 9 šī iespēja netiks atļauta.

Kompilatora uzlabojumi Java 9 kodam

Java 9 jauninājumā ir vairākas jaunas koda sastādīšanas iespējas, no kurām galvenā ir kompilācija pirms laika (AoT). Joprojām eksperimenta fāzē šī spēja ļauj apkopot Java klases vietējā kodā pirms palaišanas virtuālajā mašīnā. Šī funkcija ir paredzēta, lai uzlabotu gan mazu, gan lielu lietojumprogrammu palaišanas laiku, ar ierobežotu ietekmi uz maksimālo veiktspēju.

Just-in-time (JIT) kompilatori ir ātri, taču Java programmas ir kļuvušas tik lielas, ka JIT pilnīgai iesildīšanai nepieciešams ilgs laiks, atstājot dažas Java metodes nesakompilētas un vājinot veiktspēju. Apkopošana pirms laika ir paredzēta šo problēmu risināšanai.

Bet Java tehnoloģiju pārdevēja Excelsior mārketinga direktors Dmitrijs Leskovs uztraucas, ka pirms laika izveidotā kompilācijas tehnoloģija nav pietiekami nobriedusi, un vēlas, lai Oracle būtu gaidījis līdz Java 10 stabilāku versiju.

Java 9 piedāvā arī Oracle viedās kompilācijas izvietošanas otro posmu. Šī funkcija ietvers javac rīka stabilitāte un pārnesamība, lai to pēc noklusējuma varētu izmantot JVM (Java Virtual Machine). Šis rīks tiks arī vispārināts, lai to varētu izmantot lieliem projektiem ārpus JDK. JDK 9 ir arī atjauninājisjavac kompilators, lai tas varētu apkopot Java 9 programmas, lai tās palaistu dažās vecākās Java versijās.

Vēl viena jauna, bet eksperimentāla kompilēšanas funkcija ir Java līmeņa JVM kompilatora saskarne (JVMCI). Šī saskarne ļauj Java rakstītu kompilatoru izmantot kā dinamisku kompilatoru JVM. JVMCI API nodrošina mehānismus, kā piekļūt VM struktūrām, instalēt kompilētu kodu un pieslēgties JVM kompilēšanas sistēmai.

JVM kompilatora rakstīšanai Java jāļauj izveidot augstas kvalitātes kompilatoru, kuru ir vieglāk uzturēt un uzlabot nekā esošos kompilatorus, kas rakstīti C vai C ++. Rezultātā kompilatorus, kas rakstīti pašā Java, būtu vieglāk uzturēt un uzlabot. Citi esošie centieni iespējot Java kompilatorus ietver Graal projektu un Project Metropolis.

Jauna kompilatora vadības spēja ir paredzēta, lai nodrošinātu precīzu un no konteksta atkarīgu JVM kompilatoru vadību, ļaujot izstrādātājiem izpildītāja laikā mainīt kompilatora vadības opcijas bez veiktspējas pasliktināšanās. Šis rīks arī ļauj risināt JVM kompilatora kļūdas.

REPL beidzot nonāk pie Java 9

Java 9 piedāvā read-eval-print loop (REPL) rīku - vēl vienu Java ilgtermiņa mērķi, kas šajā versijā kļūst reāls pēc vairāku gadu izstrādes projekta Kulia ietvaros.

Sauktais jShell, Java 9’s REPL interaktīvi novērtē deklaratīvos apgalvojumus un izteicienus. Izstrādātāji var iegūt atsauksmes par programmām pirms kompilēšanas, vienkārši ievadot dažas koda rindas.

Komandrindas rīka iespējas ietver cilnes aizpildīšanu un nepieciešamo termināļa semikolu automātisku pievienošanu. JShell API ļauj jShell funkcionalitāti IDE un citos rīkos, lai gan pats rīks nav IDE.

REPL trūkums ir minēts kā iemesls skolām attālināties no Java. (Tādām valodām kā Python un Scala jau sen ir bijusi REPL.) Bet Scala valodas dibinātājs Martins Oderskis apšauba REPL lietderību Java, sakot, ka Java ir orientēta uz paziņojumiem, savukārt REPL ir orientēta uz izteiksmi.

Streams API uzlabojumi Java 9

Straumes Java ļauj izstrādātājiem izteikt aprēķinus, lai varētu efektīvi izmantot datu paralēlismu. Stream spēja Java 8 ir paredzēta datu deklaratīvai apstrādei, vienlaikus izmantojot daudzkodolu arhitektūras.

Programmā Java 9 straumju API pievieno metodes, lai nosacīti paņemtu un nomestu vienumus no straumes, atkārtotu straumes elementus un izveidotu straumi no nenovērtējamas vērtības, vienlaikus paplašinot Java SE API kopu, kas var kalpot kā straumes avoti.

Kodu kešatmiņu var sadalīt Java 9

JDK 9 ļauj koda kešatmiņu sadalīt segmentos, lai uzlabotu veiktspēju un atļautu paplašinājumus, piemēram, smalkgraudainu bloķēšanu. Rezultāti būtu jāuzlabo slaucīšanas laiki, pateicoties specializētiem atkārtotājiem, kuri izlaiž kodu, kurā nav metodes; atdalot nemetodētu, profilētu un neprofilētu kodu; un dažu etalonu izpildes laika uzlabošana.

Labāks JavaScript atbalsts Java 9, izmantojot Project Nashorn

Projekts Nashorn, kas nodrošina Java Java vieglu izpildlaiku, tiek uzlabots JDK 9. Projektā Nashorn tika mēģināts Java ieviest augstas veiktspējas, bet vieglu JavaScript izpildlaiku, sekojot Rhino projektam, kas tika sākts Netscape. Projekts Nashorn tika apsūdzēts par Java iespējošanu Java lietojumprogrammās. Tas nodrošināja Java ar JavaScript dzinēju JDK 8.

JDK 9 ietver parsētāja API Nashornas ECMAScript sintakses kokam. API nodrošina ECMAScript koda analīzi, izmantojot IDE un servera puses ietvarus, neatkarīgi no projekta Nashorn iekšējām ieviešanas klasēm.

HTTP / 2 klienta API nāk uz Java 9

Beta HTTP / 2 klienta API ir nonākusi JDK 9, Java ieviešot jaunināšanu uz tīmekļa galveno HTTP protokolu. WebSocket atbalsta arī API.

HTTP / 2 API var aizstāt HttpURLConnection API, kam ir bijušas problēmas, tostarp tas, ka tas ir izstrādāts ar tagad nederīgiem protokoliem, pirms HTTP / 1, ir pārāk abstrakts un grūti lietojams.

Uzlabots HTML5 un Unicode atbalsts Java 9

Programmā JDK 9 tiek uzlabots Javadoc dokumentācijas rīks, lai ģenerētu HTML5 marķējumu. Tiek atbalstīts arī Unicode 8.0 kodēšanas standarts - kas papildina 8000 rakstzīmes, 10 blokus un sešus skriptus.

DTLS drošības API ir pievienota Java 9

Drošībai Java 9 pievieno API DTLS (Datagram Transport Layer Security). Protokols ir izstrādāts, lai klienta / servera saziņā novērstu noklausīšanos, sagrozīšanu un ziņojumu viltošanu. Tiek nodrošināta ieviešana gan klienta, gan servera režīmiem.

Ko Java 9 noveco un noņem

Java 9 noveco vai noņem vairākas funkcijas, kas vairs nav modē. Galvenais no tiem ir Applet API, kas ir novecojis. Tagad, kad drošībai draudzīgi pārlūku veidotāji ir atņēmuši atbalstu Java pārlūkprogrammas spraudņiem, tas ir izgājis no stila. HTML5 parādīšanās arī palīdzēja viņiem beigties. Izstrādātājiem tagad tiek piedāvātas alternatīvas, piemēram, Java Web Start, lai palaistu programmas no pārlūkprogrammas vai instalējamām lietojumprogrammām.

Arī appletviewer rīks tiek novecojis.

Java 9 arī atceļ vienlaicīgā atkritumu savācēja Mark Sweep (CMS) atkritumu savācēju, un atbalsts nākotnē tiks izlaists. Mērķis ir paātrināt citu atkritumu savācēju attīstību HotSpot virtuālajā mašīnā. Zemas pauzes G1 atkritumu savācējs ir paredzēts kā ilgtermiņa CMS aizstājējs.

Tikmēr atkritumu savākšanas kombinācijas, kas iepriekš bija novecojušas JDK 8, tiek noņemtas no JDK 9. Starp tām ir reti izmantotas kombinācijas, piemēram, Incremental CMS, ParNew + SerialOld un DefNew + CMS, kas radīja papildu sarežģītību atkritumu savācēja kodu bāzei.

Java 9 arī ievada Java brīdinājumus importēšanas paziņojumos, lai palīdzētu lielām kodu bāzēm iztīrīt no savārstījuma brīdinājumiem. Izmantojot šīs kodu bāzes, novecojusī funkcionalitāte bieži ir jāatbalsta kādu laiku, taču novecojušas konstrukcijas importēšana nepamato brīdinājuma ziņojumu, ja konstrukcijas izmantošana ir tīša un tiek bloķēta.

Java 9 noņem arī iespēju izvēlēties JRE palaišanas laikā, izmantojot funkciju Multiple JRE (mJRE). Spēja tika reti izmantota, sarežģīja Java palaišanas programmas ieviešanu, un tā nekad netika pilnībā dokumentēta, kad tā debitēja JDK 5.

Oracle ir noņēmis aģentu JVM TI (Tool Interface) hprof (kaudzes profilēšana), kas ir aizstāts JVM. Tika noņemts arī jhat rīks, kuru izcili kaudzes vizualizatori un analizatori padarīja novecojušu.

Java 9 ir tās līnijas beigas, jo sākas jauna Java 9 līnija

Varētu teikt, ka Java 9 iziet ar sprādzienu, ar visām jaunajām iespējām. Oracle nesen atklāja, ka Java 9 ir pēdējais šāda veida veids, ņemot vērā tā apzīmējumu un laiku, kas pagājis starp galvenajiem izlaidumiem.

Turpmāk Java tiek plānots izlaist sešus mēnešus pēc kārtas, ar nākamo galveno versiju ar nosaukumu Java 18.3, kura termiņš būs 2018. gada marts, un pēc sešiem mēnešiem sekos Java 18.9.

Java jaunā laidiena kadence nozīmē arī to, ka JDK 9 netiks nozīmēts kā ilgtermiņa atbalsta laidiens. Tā vietā nākamais ilgtermiņa izlaidums būs Java 18.9.

Java ātrāka izlaišanas kadence nozīmē, ka izstrādātājiem nebūs jāgaida tik ilgi, kamēr galvenie izlaidumi. Tas var arī nozīmēt, ka izstrādātāji izlaidīs Java 9 un tā “nenobriedušās” modularitātes funkcijas un sešus mēnešus gaidīs jauno versiju, kas, iespējams, izlīdzinās jebkuru Kink, sacīja Simons Kļevs, Java interešu aizstāvības direktors Java rīku pārdevējā ZeroTurnaround.

$config[zx-auto] not found$config[zx-overlay] not found