JavaRush /Блоги Java /Random-TG /Java 12 дар ин ҷост: чӣ нав аст?

Java 12 дар ин ҷост: чӣ нав аст?

Дар гурӯҳ нашр шудааст
Ҳамин тавр, Java дар рақами 12 пайдо шуд. Ва гарчанде ки ин versionи LTS нест (яъне дастгирии дарозмуддат нест, нашрияе нест, ки барои муддати тӯлонӣ дастгирӣ карда мешавад. Версияи 11 аввалин нашри LTS бо ҳашт- давраи дастгирии сол ), чизҳои ҷолиб дар навсозиҳои он пайдо шуданд. Биёед муҳимтарини онҳоро дида бароем. Ёдовар мешавем, ки дар Java, пешниҳодҳои тағирот ҳамчун jeps ихтисор карда мешаванд (аз JDK Enhancement Proposal). Java 12 дар ин ҷост: чӣ нав аст?  - 1

Ҷолибтарин Jep JDK 12

189: Shenandoah: Ҷамъоварии партовҳои камдаромад (таҷрибавӣ) Ҷамъоварии партовҳо, Шенандоа алгоритми наверо истифода мебарад, ки вақти корро тавассути тоза кардани ҳамзамон бо риштаҳои Java кам мекунад. Дар ин ҳолат, вақти таваққуф дар Шенандоа новобаста аз андозаи теппа якхела хоҳад буд. Бо баъзе сабабҳо, Oracle Sheandoah-ро дар versionҳои "расмӣ" -и худ дохил накардааст, гарчанде ки таҳиягарон ин хусусиятро яке аз муҳимтарин релизҳо медонанд. Пас, агар шумо ният доред, ки коллектори пешрафтаи партовро санҷед, ба шумо лозим аст, ки сохтмонҳои тарафи сеюмро истифода баред, ба монанди Azul . 230: Microbenchmark Suite Microbenchmark як микробенчмаркест, ки кори баъзе унсурҳои хурдро чен мекунад. Дар Java, онҳо бо истифода аз чаҳорчӯбаи JMH навишта ва иҷро карда мешаванд. Аз versionи 12, JMH ба JDK илова карда шудааст ва аллакай дар он санҷишҳо навишта шудаанд, ки ҳаёти таҳиягаронро осон мекунад. 325: Ифодаҳои гузариш (Пешнамоиш) Шакли нави навиштани ифода бо баёнияи гузариш. Саҳифаи хусусият рамзи мисолро бо истифода аз гузариши анъанавӣ пешниҳод мекунад, ки дар он истифодаи доимии танаффус онро беасос муфассал мекунад ва боиси хатогиҳои тасодуфии зуд-зуд мегардад.
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;
}
Муаллифони навсозӣ пешниҳод мекунанд, ки шакли нави тамғаи коммутатори "case L ->" ҷорӣ карда шавад, то возеҳ нишон диҳад, ки агар ин нишона мувофиқ бошад, танҳо рамзи дар тарафи рости тамға иҷрошаванда иҷро карда мешавад. Ҳамин тариқ, рамзи дар боло нишон додашуда метавонад бо истифода аз синтаксиси нав ба таври назаррас кӯтоҳ карда шавад:
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 Ҳавзи доимӣ дорои константҳои ба истилоҳ боршаванда мебошад. Инҳо арзишҳо мебошанд, масалан навъи String ё ягон навъи ибтидоӣ, инчунин артефактҳои вақти корӣ, ба монанди синфҳо ва усулҳо. Ҳангоми кор бо файлҳои синфӣ, барномасозон аз абзорҳои мувофиқ барои коркарди константаҳои боршаванда баҳра хоҳанд бурд. Муаллифони ин jep ба халли ин масъала бо рохи чорй намудани навъхои нави алокахои рамзй, ки аз руи арзиш асос ёфтаанд, шуруъ намуданд, ки хар кадоми онхо як навъи константахоро тавсиф мекунанд. Рамзи инноватсия . 340: Як бандари AArch64, на ду. Ин номи мураккаб роҳи ҳалли мушкилотеро, ки дар Java 9 ба миён омадааст, пинҳон мекунад, вақте ки портҳои 64-битии ARM-и Oracle ва aarch64 аз Red Hat дар як вақт пайдо шуданд. Ғайр аз он, аллакай дар вақти баровардани JDK 11, ҳатто худи Oracle versionи 64-битии портҳои Oracle-ро дастгирӣ намекард. Ҳамин тавр, ҳоло бандарҳои 64-битии Oracle хориҷ карда шуданд, ки 32-бита ARM32 ва 64-бит, aarch64-ро боқӣ монданд. 341: Архивҳои пешфарз CDS Навсозии хеле хуб, зеро он воқеан оғози барномаро суръат мебахшад. Ба касе пӯшида нест, ки вақте як барномаи Java оғоз меёбад, шумораи зиёди синфҳо ба боркунӣ шурӯъ мекунанд ва ин раванди хеле тӯлонӣ аст. CDS маънои мубодилаи маълумотро дар бар мегирад ва ин функсия ба шумо имкон медиҳад, ки ҳамаи ин синфҳои ҳангоми оғозёбӣ ба бойгонии махсуси мубодилаи маълумот дар синф бо истифода аз рӯйхати пешфарзии ҳамон синфҳо ҷамъ кунед. Дар натиҷа, суръати оғози барнома ба таври назаррас меафзояд. 344: Коллексияҳои омехтаи қатъшаванда барои G1 G1 як коллектори ахлот аст, ки коллектори асосии ахлот дар JDK 9 шуд ва ба ҷои Parallel GC. Дар Java 10, G1 ҷамъоварии ахлотро дар риштаҳои гуногун омӯхтааст. Вале аз кори у на хама хурсанд буданд, яке аз проблемахои асосй танаффусхои дуру дароз буд. Акнун онҳо метавонанд бекор карда шаванд. G1, дар асоси таҳлor рафтори барнома, ҳаҷми корро муайян мекунад ва сипас an objectҳои "зинда" -ро дар маҷмӯи Коллексия ҷамъ мекунад, то он даме, ки ҳама чизро бидуни таваққуф ҷамъоварӣ кунад. Аксар вакт Г1 хисобу китоби хачми корхоро аз даст дода, аз хад зиёд кор мекард. Пас аз татбиқи jep-344, G1 метавонад ба ҷамъоварии афзояндаи партовҳо гузарад ва агар қадами навбатӣ барои анҷом додани он назар ба оқилона дарозтар вақт гирад, ин қадамро қатъ кардан мумкин аст. 346: Хотираи истифоданашударо аз G1 зуд баргардонед Ва чанд навсозии дигар дар лагери монтажчии дар боло зикршудаи G1. Баъзан чунин мешуд, ки як хӯшаи хотираи теппаи Java мавҷуд буд, аммо ҳеҷ кас онро истифода намебарад, ин хотира. Дар Java 12, шумо ҳоло метавонед хотираи ғайрифаъолро ба системаи оператсионӣ "баргардонед". Пештар, хеле кам буд, ки G1 даст кашад, аммо ҳоло ҳама чиз содда карда шудааст. Бо хусусияти нав, барнома ҳамчун ғайрифаъол муайян карда мешавад, агар фосила пас аз сохтани охирин ба охир расида бошад ва давраи ҳамзамон вуҷуд надошта бошад. Вазъияти дигар ин аст, ки агар функсияи getloadavg (), ки барои чанд вақт назорат карда шуд, сарбориро аз ҳадди муқарраршудаи муқарраршуда нишон диҳад. Агар яке аз ин ду ҳодиса рух диҳад, ҷамъоварии қисман партов оғоз мешавад. Он чизе, ки Java 12 надорад: Raw String Literals Бисёре аз таҳиягарон ба ин хусусият таваҷҷӯҳ доштанд, аммо он ҳеҷ гоҳ дар ин нашрия пайдо нашудааст. Муаллифони он тасмим гирифтанд, ки он ҳанӯз ба кор ниёз дорад. Ҳамин тавр, мо ҷуръат дорем умедворем, ки дар яке аз versionҳои навбатии Java функсия барои кори қулай бо литералҳои сатр пайдо мешавад. Дастгирии сатри хом ба шумо имкон медиҳад, ки новобаста аз забон бо маълумоти сатр кор кунед. Ин зарурати муҳофизатро аз байн мебарад. Махсусан дар ифодаҳои муқаррарӣ, ки дар он ҷо хатҳои ақиб ба таври васеъ истифода мешаванд ва дар Windows-path, ки дар он ҷо хатҳои баръакс ҳамчун ҷудокунанда истифода мешаванд, муфид аст. Яъне, барои пешгирӣ кардани чунин сохтмонҳо: C:\\My\\Test\\Pack\\
Ҳар як барномасоз аксар вақт дар кори худ ба ин ё он душворӣ дучор мешавад. Баъзан онҳо бо бетаҷрибагии таҳиякунанда, вале баъзан бо номукаммалии худи асбоб алоқаманданд. Java забони олӣ аст, аммо он аз комorят дур нест. Шояд шумо аллакай дар Java бо чизе дучор шудаед ва медонед, ки дар "асбоб" (забон)-и худ чиро тағир додан мехоҳед? Дар шарҳҳо мубодила кунед!

хулосахо

Дар Java 12 инқилоб набуд. Аммо, касе онро ба нақша нагирифтааст. Бо вуҷуди ин, як қатор навоварӣ ба оптимизатсияи кори замимаҳо ва тезонидани кор нигаронида шудааст, ки ин хушхабар аст. Дар омади гап, IDEA аллакай JDK 12-ро дастгирӣ мекунад, бинобар ин шумо метавонед қобorятҳои онро санҷед. Албатта, чанде аз навсозиҳо бевосита ба шурӯъкунандагон таъсир мерасонанд, гарчанде ҳатто онҳое, ки ба омӯзиши JavaRush нав шурӯъ кардаанд, метавонанд бо гузариши нав бозӣ кунанд (пас аз гузоштани парчами --enable-preview).
Шарҳҳо
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION