JavaRush /Java блогы /Random-KK /Java 12 осында: не жаңалық?

Java 12 осында: не жаңалық?

Топта жарияланған
Осылайша, Java 12-ші нөмірде пайда болды. Бұл LTS шығарылымы болмаса да (яғни, ұзақ мерзімді қолдау емес, ұзақ уақыт бойы қолдау көрсетілетін шығарылым емес. 11- нұсқа сегіздік нұсқасы бар бірінші LTS шығарылымы болып саналады. Жылдық қолдау кезеңі ), оның жаңартуларында қызықты нәрселер пайда болды. Олардың ең маңыздыларын қарастырайық. Еске салайық, Java тілінде өзгерту ұсыныстары қысқартылған түрде jeps (JDK Enhancement Proposal) деп аталады. Java 12 осында: не жаңалық?  - 1

Ең қызықты Jep JDK 12

189: Shenandoah: аз кідіріс уақытында қоқыс жинағыш (эксперименттік) Қоқыс жинағыш, Shenandoah, іске қосылған Java ағындарымен бір уақытта тазалау арқылы жұмыс уақытын азайтатын жаңа алгоритмді пайдаланады. Бұл жағдайда Шенандоадағы үзіліс уақыты үйменің өлшеміне қарамастан бірдей болады. Әзірлеушілер бұл мүмкіндікті жаңа шығарылымдағы ең маңыздыларының бірі деп санағанына қарамастан, қандай да бір себептермен Oracle Sheandoah-ты өзінің «ресми» шығарылымдарына қоспады. Сондықтан, егер сіз жетілдірілген қоқыс жинағышты қолданып көруді жоспарласаңыз, Azul сияқты үшінші тарап құрылымдарын пайдалануыңыз керек . 230: Microbenchmark Suite Microbenchmark — кейбір шағын элементтің өнімділігін өлшейтін микробенчмарк. Java тілінде олар JMH құрылымы арқылы жазылады және іске қосылады. 12-нұсқадан бастап JMH JDK-ге қосылды және онда қазірдің өзінде жазылған сынақтар бар , бұл әзірлеушілердің өмірін жеңілдетеді. 325: Ауыстыру өрнектері (Алдын ала қарау) Switch операторымен өрнек жазудың жаңа түрі. Мүмкіндік бетінде үзілістің тұрақты қолданылуы оны қажетсіз егжей-тегжейлі етіп, жиі кездейсоқ қателерге әкелетін дәстүрлі қосқышты қолданатын мысал codeын ұсынады.
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;
}
Жаңарту авторлары егер бұл белгі қолайлы болса, тек белгінің оң жағындағы code орындалатынын анық көрсету үшін «L case ->» ауыстырып-қосқыш белгісінің жаңа түрін енгізуді ұсынады. Осылайша, жоғарыда көрсетілген codeты жаңа синтаксистің көмегімен айтарлықтай қысқартуға болады:
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 авторлары бұл мәселені шешуге символдық сілтемелердің жаңа мәнге негізделген түрлерін енгізу арқылы бастады, олардың әрқайсысы тұрақтылардың белгілі бір түрін сипаттайды. Инновациялық code . 340: Бір AArch64 порты, екі емес Бұл күрделі атау Oracle 64 биттік ARM порттары мен Red Hat компаниясының aarch64 порттары бір уақытта жинақта пайда болған кезде Java 9 жүйесінде туындаған мәселенің шешімін жасырады. Сонымен қатар, JDK 11 шығарылымы кезінде тіпті Oracle өзі Oracle порттарының 64 биттік нұсқасын қолдамады. Енді 64-биттік Oracle порттары жойылып, 32-биттік ARM32 және 64-биттік, өнімдірек, aarch64 қалдырды. 341: Әдепкі CDS мұрағаттары Өте жақсы жаңарту, себебі ол қолданбаны іске қосуды тездетеді. Жасыратыны жоқ, Java қосымшасы іске қосылғанда, көптеген сыныптар жүктеле бастайды және бұл өте ұзақ процесс. CDS – Class Data Sharing дегенді білдіреді және бұл функция іске қосу кезінде іске қосылған барлық осы сыныптарды осы сыныптардың әдепкі тізімін пайдалана отырып, арнайы сынып деректерін ортақ мұрағатқа жинауға мүмкіндік береді. Нәтижесінде қолданбаны іске қосу жылдамдығы айтарлықтай артады. 344: G1 G1 үшін тоқтатылатын аралас жинақтар - бұл JDK 9 жүйесіндегі негізгі қоқыс жинағышқа айналған, Parallel GC ауыстыратын қоқыс жинағыш. Java 10-да G1 қоқыстарды бірнеше ағындарда жинауды үйренді. Дегенмен, оның жұмысына бәрі бірдей риза емес, басты мәселелердің бірі ұзақ үзілістер болды. Енді олардан бас тартуға болады. G1, бағдарламаның әрекетін талдау негізінде жұмыс көлемін анықтайды, содан кейін тоқтаусыз барлығын жинағанша «тірі» нысандарды Жинақ жинағына жинайды. Жиі G1 жұмыс көлемін есептеуді жіберіп алды және тым ұзақ жұмыс істеді. jep-344 іске қосылғаннан кейін, G1 қосымша қоқыс жинауға ауыса алады және келесі қадамды аяқтау ақылға қонымдыдан ұзағырақ болса, бұл қадамды тоқтатуға болады. 346: G1 қолданбасынан пайдаланылмаған бекітілген жадты дереу қайтарыңыз Жоғарыда аталған G1 ассемблерінің лагерінде тағы бірнеше жаңартулар. Кейде Java үйме жадының жиынтығы болатын, бірақ оны ешкім пайдаланбады, бұл жад. Java 12-де енді белсенді емес жадты операциялық жүйеге «қайтаруға» болады. Бұрын G1 жадыдан бас тарту өте сирек болатын, бірақ қазір бәрі жеңілдетілді. Жаңа мүмкіндіктің көмегімен соңғы құрастырудан кейінгі аралық бітсе және бір мезгілде цикл болмаса, қолданба белсенді емес деп анықталады. Тағы бір жағдай - белгілі бір уақыт бойы бақыланатын getloadavg() функциясы белгіленген рұқсат етілген шекті мәннен төмен жүктемені көрсетеді. Екі оқиғаның бірі орын алса, ішінара қоқыс жинау басталады. Java 12-де не жоқ: Raw String Literals Көптеген әзірлеушілер бұл мүмкіндікке қызығушылық танытты, бірақ ол бұл шығарылымда ешқашан пайда болмады. Оның авторлары оған әлі де жұмыс қажет деп шешті. Осылайша, біз Java тілінің келесі нұсқаларының бірінде жолдық литералдармен ыңғайлы жұмыс істеу функциясы пайда болады деп үміттенеміз. Шикі жол литералдарын қолдау тілге қарамастан жол ақпаратымен жұмыс істеуге мүмкіндік береді. Бұл экрандау қажеттілігін жояды. Кері қиғаш сызықтар кеңінен қолданылатын тұрақты өрнектерде және кері қиғаш сызықтар бөлгіштер ретінде пайдаланылатын Windows жолында әсіресе пайдалы. Яғни, мұндай конструкцияларды болдырмау үшін: C:\\My\\Test\\Pack\\
Әрбір бағдарламашы өз жұмысында сол немесе басқа қиындықтарға жиі кездеседі. Кейде олар әзірлеушінің тәжірибесіздігімен байланысты, бірақ кейде құралдың өзінің жетілмегендігімен байланысты. Java - керемет тіл, бірақ ол мінсіз емес. Мүмкін сіз Java-да бірдеңені кездестірген боларсыз және «құралыңызда» (тіліңізде) нені өзгерткіңіз келетінін білесіз бе? Пікірлерде бөлісіңіз!

қорытындылар

Java 12-де революция болған жоқ. Алайда оны ешкім жоспарлаған жоқ. Дегенмен, бірқатар жаңалықтар қосымшалардың жұмысын оңтайландыруға және жұмысты жеделдетуге бағытталған, бұл жақсы жаңалық. Айтпақшы, IDEA қазірдің өзінде JDK 12-ге қолдау көрсетеді, сондықтан оның мүмкіндіктерін сынап көруге болады. Әрине, бірнеше жаңартулар жаңадан бастаушыларға тікелей әсер етеді, дегенмен JavaRush-ті енді ғана үйрене бастағандар да жаңа қосқышпен ойнай алады (--enable-preview жалауын орнатқаннан кейін).
Пікірлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION