JavaRush /Blog Jawa /Random-JV /Jawa 12 ana kene: apa anyar?

Jawa 12 ana kene: apa anyar?

Diterbitake ing grup
Dadi, Jawa muncul ing nomer 12. Lan sanajan iki dudu rilis LTS (yaiku, dudu dhukungan jangka panjang, dudu rilis sing bakal didhukung suwe. Versi 11 dianggep minangka rilis LTS pisanan kanthi wolung- periode dhukungan taun ), bab-bab menarik katon ing nganyari. Ayo goleki sing paling penting. Elinga yen ing Jawa, usulan owah-owahan disingkat jeps (saka JDK Enhancement Proposal). Jawa 12 ana ing kene: apa sing anyar?  - 1

JDK 12 Jep sing paling menarik

189: Shenandoah: Pengumpul Sampah Wektu Sedheng (Eksperimen) Pengumpul Sampah, Shenandoah, nggunakake algoritma anyar sing nyuda wektu kerja kanthi ngresiki bebarengan karo benang Java sing mlaku. Ing kasus iki, wektu ngaso ing Shenandoah bakal padha preduli saka ukuran tumpukan. Kanggo sawetara alasan, Oracle ora kalebu Sheandoah ing rilis "resmi" mbangun, sanajan kasunyatane para pangembang nganggep fitur iki minangka salah sawijining sing paling penting ing rilis anyar. Dadi, yen sampeyan pengin nyoba Pengumpul Sampah sing canggih, sampeyan kudu nggunakake bangunan pihak katelu, kayata Azul . 230: Microbenchmark Suite Microbenchmark minangka microbenchmark sing ngukur kinerja sawetara unsur cilik. Ing Jawa, ditulis lan dilakokake nganggo kerangka JMH. Wiwit versi 12, JMH wis ditambahake menyang JDK, lan wis ana tes sing ditulis ing kono, sing nggawe urip luwih gampang kanggo pangembang. 325: Ekspresi Ngalih (Preview) Wujud anyar nulis ekspresi kanthi statement switch. Kaca fitur menehi conto kode nggunakake switch tradisional, ngendi nggunakake pancet break ndadekake rasah verbose, anjog kanggo kesalahan acak Kerep.
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;
}
Penulis nganyari ngusulake kanggo ngenalake wangun anyar saka label switch "kasus L ->" kanggo nuduhake kanthi jelas yen mung kode ing sisih tengen label sing bakal dieksekusi yen label iki cocok. Dadi, kode sing ditampilake ing ndhuwur bisa disingkat kanthi signifikan nggunakake sintaks anyar:
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 Konstanta API Kolam pancet ngemot supaya disebut-loadable konstanta. Iki minangka nilai, contone jinis String utawa jinis primitif apa wae, uga artefak run-time, kayata kelas lan metode. Nalika nggarap file kelas, programer bakal entuk manfaat saka alat sing trep kanggo manipulasi konstanta sing bisa dimuat. Penulis saka jep iki wiwit ngrampungake masalah iki kanthi ngenalake jinis pranala simbolis adhedhasar nilai anyar, sing saben bakal njlèntrèhaké jinis konstanta tartamtu. Kode inovasi . 340: Siji Port AArch64, Ora Loro Jeneng kompleks iki ndhelikake solusi kanggo masalah sing muncul ing Jawa 9, nalika port ARM 64-bit Oracle lan aarch64 saka Red Hat katon ing kit bebarengan. Kajaba iku, wis ing wektu release saka JDK 11, malah Oracle dhewe ora ndhukung versi 64-dicokot saka bandar Oracle. Dadi saiki port Oracle 64-bit wis dibusak, ninggalake 32-bit ARM32, lan 64-bit, luwih produktif, aarch64. 341: Arsip CDS Default Nganyari sing apik banget amarga pancen nyepetake peluncuran aplikasi. Ora ana rahasia manawa nalika aplikasi Java diwiwiti, akeh kelas wiwit mbukak, lan iki minangka proses sing rada dawa. CDS stands for Class Data Sharing, lan fungsi iki ngijini sampeyan kanggo Pack kabeh kelas iki dibukak ing wiwitan menyang arsip enggo bareng data kelas khusus, nggunakake dhaptar standar iki kelas padha. Akibaté, kacepetan peluncuran aplikasi mundhak sacara signifikan. 344: Abortable Mixed Collections kanggo G1 G1 minangka pengumpul sampah sing dadi pengumpul sampah utama ing JDK 9, ngganti Parallel GC. Ing Jawa 10, G1 sinau ngumpulake sampah ing pirang-pirang benang. Nanging, ora kabeh wong seneng karo karyane, salah sawijining masalah utama yaiku ngaso sing dawa. Saiki dheweke bisa dibatalake. G1, adhedhasar analisis saka prilaku program, nemtokake jumlah karya, lan banjur ngumpulake "urip" obyek menyang Koleksi set nganti ngumpulake kabeh, tanpa mandheg. Asring G1 ora kejawab pitungan jumlah karya lan makarya dawa banget. Sawise jep-344 dileksanakake, G1 bisa ngalih menyang koleksi sampah tambahan lan yen langkah sabanjure njupuk wektu luwih suwe tinimbang cukup, langkah kasebut bisa dibatalake. 346: Mbalekake Memori Komitmen sing Ora Digunakake saka G1 Lan sawetara nganyari liyane ing camp saka G1 assembler kasebut. Kadhangkala ana akeh memori tumpukan Jawa, nanging ora ana sing nggunakake, memori iki. Ing Java 12, sampeyan saiki bisa "bali" memori ora aktif menyang sistem operasi. Sadurunge, iku arang banget kanggo njaluk G1 nyerah memori, nanging saiki kabeh wis simplified. Kanthi fitur anyar, aplikasi ditetepake ora aktif yen interval wiwit mbangun pungkasan wis kadaluwarsa lan ora ana siklus bebarengan. Kahanan liyane yen utawa yen fungsi getloadavg (), sing wis dipantau kanggo sawetara wektu, nuduhake beban ngisor batesan ditrima pesawat. Yen salah siji saka rong acara kedadeyan, pengumpulan sampah sebagean diwiwiti. Apa Java 12 ora duwe: Raw String Literal Akeh pangembang sing kasengsem ing fitur iki, nanging ora tau muncul ing release iki. Penulis mutusake manawa isih butuh karya. Dadi, kita wani ngarep-arep yen fungsi kanggo karya sing trep karo literal string bakal katon ing salah sawijining versi Jawa sabanjure. Dhukungan kanggo literal string mentah ngidini sampeyan nggarap informasi senar preduli saka basa. Iki ngilangi kabutuhan shielding. Utamane migunani ing ekspresi biasa, ing ngendi garis miring terbalik digunakake, lan ing jalur Windows, ing ngendi garis miring mundur digunakake minangka pembatas. Sing, kanggo ngindhari konstruksi kasebut: C:\\My\\Test\\Pack\\
Saben programmer kerep nemoni siji utawa liyane kangelan ing karya. Kadhangkala digandhengake karo inexperience saka pangembang, nanging kadhangkala karo imperfection saka alat dhewe. Basa Jawa iku basa kang apik, nanging ora sampurna. Mbok menawa sampeyan wis nemoni apa-apa ing Jawa lan ngerti apa sing pengin diganti ing "alat" (basa) sampeyan? Nuduhake ing komentar!

kesimpulan

Ora ana revolusi ing Jawa 12. Nanging, ora ana sing ngrancang. Nanging, sawetara inovasi ditujokake kanggo ngoptimalake operasi aplikasi lan nyepetake karya, sing dadi kabar apik. Miturut cara, IDEA wis ndhukung JDK 12, supaya sampeyan bisa nyoba kapabilitas. Mesthi wae, sawetara nganyari langsung mengaruhi pamula, sanajan sing lagi wae sinau JavaRush bisa muter karo saklar anyar (sawise nyetel --enable-preview flag).
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION