JavaRush /Java Blog /Random-TK /Java 12 şu ýerde: näme täzelik?

Java 12 şu ýerde: näme täzelik?

Toparda çap edildi
Şeýlelikde, Java 12-nji ýerde peýda boldy. Bu LTS çykarylmasa-da (uzak möhletli goldaw däl, uzak wagtlap goldanyljak neşir däl. 11-nji wersiýa sekiz bilen ilkinji LTS çykarylyşy hasaplanýar! goldaw goldaw döwri ), gyzykly zatlar täzelendi. Geliň, olaryň iň möhümine seredeliň. Java-da üýtgetmek teklipleriniň jep hökmünde gysgaldylandygyny ýadyňyzdan çykarmaň (JDK Enhancement Teklipinden). Java 12 şu ýerde: näme täzelik?  - 1

Iň gyzykly Jep's JDK 12

189: Shenandoah: Az wagtlyk hapa ýygnaýjy (Tejribe) Zibil ýygnaýjy Şenandoah, Java sapaklary bilen bir wagtyň özünde arassalamak arkaly iş wagtyny azaldýan täze algoritm ulanýar. Bu ýagdaýda, Şenandoahdaky arakesme wagty, üýşmäniň ululygyna garamazdan birmeňzeş bolar. Näme üçindir, döredijiler bu aýratynlygy täze çykaryşda iň möhümlerinden biri hasaplaýandyklaryna garamazdan, Oracle Sheandoah-ny “resmi” neşirine goşmady. Şonuň üçin ösen zibil ýygnaýjysyny synap görmek isleseňiz, Azul ýaly üçünji tarap gurluşlaryny ulanmaly . 230: “Microbenchmark Suite Microbenchmark” käbir ownuk elementleriň işleýşini ölçän mikrobenmarkdyr. Java-da JMH çarçuwasy bilen ýazylýar we işleýär. 12-nji wersiýasyndan bäri JMH JDK-a goşuldy we onda eýýäm döredijiler üçin durmuşy aňsatlaşdyrýan synaglar bar. 325: Geçiş aňlatmalary (Öňünden syn) Wyklýuçatel beýany bilen aňlatma ýazmagyň täze görnüşi. Aýratynlyk sahypasy, adaty wyklýuçateliň kömegi bilen mysal kody bilen üpjün edýär, bu ýerde arakesmäni yzygiderli ulanmak ony zerur däl sözlere öwürýär we ýygy-ýygydan tötänleýin ýalňyşlyklara sebäp bolýar.
switch (day) {
    case MONDAY:
    case FRIDAY:
    case SUNDAY:
        System.out.println(6);
        break;
    case TUESDAY:
        System.out.println(7);
        break;
    case THURSDAY:
    case SATURDAY:
        System.out.println(8);
        break;
    case WEDNESDAY:
        System.out.println(9);
        break;
}
Täzelenmäniň awtorlary, bu bellik laýyk bolsa, belligiň sag tarapyndaky koduň ýerine ýetiriljekdigini aç-açan görkezmek üçin “L ->” wyklýuçatel belliginiň täze görnüşini girizmegi teklip edýärler. Şeýlelikde, ýokarda görkezilen kod täze sintaksis ulanyp ep-esli gysgaldylyp bilner:
switch (day) {
    case MONDAY, FRIDAY, SUNDAY -> System.out.println(6);
    case TUESDAY                -> System.out.println(7);
    case THURSDAY, SATURDAY     -> System.out.println(8);
    case WEDNESDAY              -> System.out.println(9);
}
334: JVM Constants API Hemişelik howuzda ýüklenýän yzygiderlilik diýilýär. Bular gymmatlyklar, mysal üçin String görnüşi ýa-da islendik başlangyç görnüş, şeýle hem synplar we usullar ýaly iş wagtyndaky artefaktlar. Synp faýllary bilen işleýän wagtyňyz, programmistler ýüklenýän yzygiderliligi dolandyrmak üçin amatly gurallardan peýdalanarlar. Bu jepiň awtorlary, bu meseläniň hersiniň belli bir üýtgewsiz görnüşini suratlandyrjak simwoliki baglanyşyklaryň täze bahasyna esaslanýan görnüşleri girizmek arkaly çözüp başladylar. Innowasiýa kody . 340: Iki däl AArch64 porty Bu çylşyrymly at, bir wagtyň özünde toplumda 64 bitli ARM portlary we Red Hat-dan aarch64 peýda bolanda, Java 9-da ýüze çykan meseläniň çözgüdini gizleýär. Mundan başga-da, JDK 11 çykan wagty, hatda Oracle-yň özi hem Oracle portlarynyň 64 bitli wersiýasyny goldamady. Şeýlelik bilen indi 64 bitli Oracle portlary aýryldy, 32 bitli ARM32 we 64 bitli, has öndürijilikli aarch64 goýuldy. 341: Bellenen CDS arhiwi Programmanyň işe girizilmegini çaltlaşdyrýanlygy sebäpli gaty gowy täzelenme. Java programmasy başlanda, köp sanly synpyň ýüklenip başlandygy hiç kim üçin syr däl we bu gaty uzyn proses. CDS synp maglumatlary paýlaşmagy aňladýar we bu funksiýa, başlangyçda başlanan bu synplaryň hemmesini şol synplaryň deslapky sanawyny ulanyp, ýörite synp maglumatlary paýlaşmak arhiwine gaplamaga mümkinçilik berýär. Netijede, programmany işe girizmegiň tizligi ep-esli ýokarlanýar. 344: G1 G1 üçin ýatyrylan garyşyk kolleksiýalar, Paralel GC-iň ornuny tutup, JDK 9-da esasy hapa ýygnaýjy boldy. Java 10-da G1 birnäçe sapakda zibil ýygnamagy öwrendi. Şeýle-de bolsa, her kim onuň işinden hoşal däldi, esasy meseleleriň biri uzak arakesmelerdi. Indi olar ýatyrylyp bilner. G1, programmanyň özüni alyp barşynyň seljermesine esaslanyp, işiň mukdaryny kesgitleýär we soňra “janly” zatlary hemme zady ýygnaýança, saklamazdan ýygnaýar. G1 köplenç işiň mukdaryny hasaplamagy sypdyrdy we gaty uzak işledi. Jep-344 durmuşa geçirilenden soň, G1 artýan zibil ýygnamagyna geçip biler we indiki ädim ýerlikli bolandan has köp wagt alsa, bu ädim ýatyrylyp bilner. 346: G1-den ulanylmadyk tabşyrylan ýady derrew gaýtaryň 1okarda agzalan G1 montajynyň lagerinde ýene birnäçe täzelik. Käwagt bir topar Java üýşmek ýady bardy, ýöne hiç kim ulanmady, bu ýat. Java 12-de indi hereketsiz ýady operasiýa ulgamyna “yzyna” alyp bilersiňiz. Ozal G1-den ýadyňy taşlamak gaty seýrekdi, ýöne indi hemme zat ýönekeýleşdirildi. Täze aýratynlyk bilen, soňky gurluşykdan bäri aralyk gutarsa ​​we yzygiderli aýlaw bolmasa, programma hereketsiz diýip kesgitlenýär. Başga bir ýagdaý, birnäçe wagt bäri gözegçilik astynda saklanýan getloadavg () funksiýasy bellenilen çäkden aşakda bir ýük görkezýän bolsa. Iki hadysanyň biri ýüze çyksa, bölekleýin hapa ýygnamak başlaýar. Java 12-de ýok zat: Çig setirli sözler Köp döredijiler bu aýratynlyk bilen gyzyklandy, ýöne bu neşirde hiç haçan görünmedi. Authorsazyjylary henizem işiň gerekdigine karar berdiler. Şeýlelik bilen, Java-yň indiki wersiýalarynyň birinde simli sözler bilen amatly işlemek üçin bir funksiýa peýda bolar diýip umyt edýäris. Çig harp sözlerini goldamak, dile garamazdan simli maglumatlar bilen işlemäge mümkinçilik berýär. Goramak zerurlygyny aradan aýyrýar. Esasanam yzygiderli aňlatmalarda, yzky çyzgylar giňden ulanylýan we arka ýazgylary aýyrmak hökmünde ulanylýan Windows ýolunda peýdaly. Suchagny, şeýle gurluşyklardan gaça durmak üçin: C: \\ My \\ Test \\ Pack \\
Her bir programmist işinde köplenç bir ýa-da başga bir kynçylyk bilen ýüzbe-ýüz bolýar. Käwagt işläp düzüjiniň tejribesizligi bilen, käte guralyň kämilliksizligi bilen baglanyşykly. Java ajaýyp dil, ýöne kämillikden uzak. Javahtimal, Java-da eýýäm bir zada duş geldiňiz we “guralyňyzda” (diliňizde) näme üýtgetmek isleýändigiňizi bilýärsiňiz? Teswirlerde paýlaşyň!

Netijeler

Java 12-de hiç hili rewolýusiýa bolmady. Emma muny hiç kim meýilleşdirmedi. Şeýle-de bolsa, birnäçe täzelikler amaly programmalary optimizirlemäge we işi çaltlaşdyrmaga gönükdirilendir, bu gowy habar. .Eri gelende aýtsak, IDEA eýýäm JDK 12-ni goldaýar, şonuň üçin onuň mümkinçiliklerini synap bilersiňiz. Elbetde, täzelenmeler täze başlaýanlara gönüden-göni täsir edýär, hatda JavaRush öwrenip başlanlaram täze wyklýuçatel bilen oýnap bilerler (--enable-deslapky baýdagy bellänsoň).
Teswirler
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION