JavaRush /Java Blog /Random-ID /Java 12 telah hadir: apa yang baru?

Java 12 telah hadir: apa yang baru?

Dipublikasikan di grup Random-ID
Jadi, Java muncul di nomor 12. Dan meskipun ini bukan rilis LTS (yaitu, bukan dukungan jangka panjang, bukan rilis yang akan didukung untuk waktu yang lama. Versi 11 dianggap sebagai rilis LTS pertama dengan delapan- periode dukungan tahun ), hal-hal menarik muncul di pembaruannya. Mari kita lihat yang paling penting. Ingatlah bahwa di Java, proposal perubahan disingkat jeps (dari JDK Enhancement Proposal). Java 12 telah hadir: apa yang baru?  - 1

JDK 12 Jep yang paling menarik

189: Shenandoah: Pengumpul Sampah dengan Waktu Jeda Rendah (Eksperimental) Pengumpul Sampah, Shenandoah, menggunakan algoritme baru yang mengurangi waktu proses dengan membersihkan secara bersamaan dengan menjalankan thread Java. Dalam hal ini, waktu jeda di Shenandoah akan sama terlepas dari ukuran tumpukannya. Untuk beberapa alasan, Oracle tidak menyertakan Sheandoah dalam versi rilis "resmi", meskipun faktanya pengembang menganggap fitur ini sebagai salah satu yang paling penting dalam rilis baru. Jadi jika Anda berencana untuk mencoba Pengumpul Sampah tingkat lanjut, Anda perlu menggunakan build pihak ketiga, seperti Azul . 230: Microbenchmark Suite Microbenchmark adalah microbenchmark yang mengukur kinerja beberapa elemen kecil. Di Java, mereka ditulis dan dijalankan menggunakan kerangka JMH. Sejak versi 12, JMH telah ditambahkan ke JDK, dan sudah ada tes yang ditulis di dalamnya, yang membuat hidup lebih mudah bagi para pengembang. 325: Ganti Ekspresi (Pratinjau) Bentuk penulisan ekspresi baru dengan pernyataan sakelar. Halaman fitur menyediakan contoh kode menggunakan saklar tradisional, di mana penggunaan break secara terus-menerus membuatnya menjadi terlalu bertele-tele, sehingga sering menyebabkan kesalahan acak.
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 pembaruan mengusulkan untuk memperkenalkan bentuk baru dari label sakelar “case L ->” untuk secara jelas menunjukkan bahwa hanya kode di sebelah kanan label yang akan dieksekusi jika label ini sesuai. Dengan demikian, kode yang ditunjukkan di atas dapat dipersingkat secara signifikan menggunakan sintaks baru:
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 Kumpulan konstanta berisi apa yang disebut konstanta yang dapat dimuat. Ini adalah nilai, misalnya tipe String atau tipe primitif apa pun, serta artefak run-time, seperti kelas dan metode. Saat bekerja dengan file kelas, pemrogram akan mendapat manfaat dari alat yang mudah digunakan untuk memanipulasi konstanta yang dapat dimuat. Penulis jep ini mulai memecahkan masalah ini dengan memperkenalkan tipe tautan simbolik berbasis nilai baru, yang masing-masing akan mendeskripsikan tipe konstanta tertentu. Kode inovasi . 340: Satu Port AArch64, Bukan Dua Nama kompleks ini menyembunyikan solusi untuk masalah yang muncul di Java 9, ketika port ARM 64-bit dari Oracle dan aarch64 dari Red Hat muncul di kit secara bersamaan. Terlebih lagi, pada saat JDK 11 dirilis, bahkan Oracle sendiri tidak mendukung port Oracle versi 64-bit. Jadi sekarang port Oracle 64-bit telah dihapus, meninggalkan ARM32 32-bit, dan 64-bit, lebih produktif, aarch64. 341: Arsip CDS Default Pembaruan yang sangat bagus karena sangat mempercepat peluncuran aplikasi. Bukan rahasia lagi bahwa ketika aplikasi Java dimulai, sejumlah besar kelas mulai dimuat, dan ini adalah proses yang agak panjang. CDS adalah singkatan dari Class Data Sharing, dan fungsi ini memungkinkan Anda untuk mengemas semua kelas yang diluncurkan saat startup ke dalam arsip berbagi data kelas khusus, menggunakan daftar default dari kelas yang sama. Hasilnya, kecepatan peluncuran aplikasi meningkat secara signifikan. 344: Koleksi Campuran yang Dapat Dibatalkan untuk G1 G1 adalah pengumpul sampah yang menjadi pengumpul sampah utama di JDK 9, menggantikan Parallel GC. Di Java 10, G1 belajar mengumpulkan sampah di banyak thread. Namun, tidak semua orang senang dengan pekerjaannya; salah satu masalah utamanya adalah jeda yang lama. Sekarang mereka bisa dibatalkan. G1, berdasarkan analisis perilaku program, menentukan jumlah pekerjaan, dan kemudian mengumpulkan objek "hidup" ke dalam kumpulan Koleksi hingga mengumpulkan semuanya, tanpa henti. Seringkali G1 melewatkan perhitungan jumlah pekerjaan dan bekerja terlalu lama. Setelah jep-344 diimplementasikan, G1 dapat beralih ke pengumpulan sampah bertahap dan jika langkah selanjutnya membutuhkan waktu lebih lama dari yang wajar, langkah tersebut dapat dibatalkan. 346: Segera Kembalikan Memori Berkomitmen yang Tidak Digunakan dari G1 Dan beberapa pembaruan lagi di kubu assembler G1 tersebut di atas. Terkadang ada banyak memori heap Java, tetapi tidak ada yang menggunakannya, memori ini. Di Java 12, kini Anda dapat “mengembalikan” memori tidak aktif ke sistem operasi. Sebelumnya, sangat jarang G1 merelakan memori, namun kini semuanya telah disederhanakan. Dengan fitur baru ini, aplikasi dianggap tidak aktif jika interval sejak build terakhir telah habis dan tidak ada siklus bersamaan. Situasi lainnya adalah jika atau jika fungsi getloadavg(), yang telah dipantau selama beberapa waktu, menunjukkan beban di bawah ambang batas yang dapat diterima. Jika salah satu dari dua peristiwa terjadi, pengumpulan sampah sebagian dimulai. Apa yang tidak dimiliki Java 12: Literal String Mentah Banyak pengembang yang tertarik dengan fitur ini, namun fitur ini tidak pernah muncul dalam rilis ini. Penulisnya memutuskan bahwa hal itu masih memerlukan perbaikan. Jadi, kami berani berharap bahwa fungsi untuk memudahkan pekerjaan dengan literal string akan muncul di salah satu versi Java berikutnya. Dukungan untuk literal string mentah memungkinkan Anda bekerja dengan informasi string apa pun bahasanya. Hal ini menghilangkan kebutuhan akan pelindung. Sangat berguna dalam ekspresi reguler, di mana garis miring terbalik banyak digunakan, dan di jalur Windows, di mana garis miring terbalik digunakan sebagai pembatas. Artinya, untuk menghindari konstruksi seperti itu: C:\\My\\Test\\Pack\\
Setiap programmer sering kali menemui satu atau beberapa kesulitan dalam pekerjaannya. Terkadang hal ini disebabkan oleh kurangnya pengalaman pengembang, tetapi terkadang karena ketidaksempurnaan alat itu sendiri. Java adalah bahasa yang hebat, tetapi masih jauh dari sempurna. Mungkin Anda pernah menemukan sesuatu di Java dan tahu apa yang ingin Anda ubah pada “alat” (bahasa) Anda? Bagikan di komentar!

kesimpulan

Tidak ada revolusi di Jawa 12. Namun, tidak ada yang merencanakannya. Namun, sejumlah inovasi ditujukan untuk mengoptimalkan pengoperasian aplikasi dan mempercepat pekerjaan, dan ini merupakan kabar baik. Omong-omong, IDEA sudah mendukung JDK 12, jadi Anda bisa mencoba kemampuannya. Tentu saja, hanya sedikit pembaruan yang secara langsung memengaruhi pemula, meskipun mereka yang baru mulai mempelajari JavaRush dapat bermain dengan sakelar baru (setelah menyetel tanda --enable-preview).
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION