JDK 14: Ciri-ciri baru di Java 14

Java Development Kit (JDK) 14 telah mencapai GA, tiba di rilis ketersediaan umum untuk penyebaran pengeluaran. Peningkatan ke Java standard merangkumi keupayaan baru seperti streaming acara JDK Flight Recorder, pemadanan corak, dan ekspresi beralih. 

JDK 14 adalah pelepasan fitur Java, bukan rilis sokongan jangka panjang (LTS), mengikuti irama pelepasan enam bulan yang ditetapkan untuk Java. JDK 14 akan menerima kemas kini keselamatan pada bulan April dan Julai sebelum digantikan oleh JDK 15, juga pelepasan bukan LTS, yang dijadualkan pada bulan September. Keluaran LTS semasa adalah JDK 11. 

Ciri dan penambahbaikan baru dalam JDK 14 merangkumi:

  • JFR Event Streaming menyediakan API untuk penggunaan data JFR secara berterusan dari aplikasi dalam proses dan di luar proses. JFR adalah alat untuk mengumpulkan data profil dan diagnostik mengenai aplikasi Java dan JVM ketika mereka berjalan. Cadangan penstriman acara mencatat kumpulan peristiwa yang sama dengan kes bukan penstriman, dengan overhead kurang dari satu peratus jika mungkin. Penstriman acara mesti wujud bersama rakaman bukan penstriman, baik berdasarkan cakera dan juga memori. Memotivasi cadangan ini adalah situasi di mana HotSpot VM mengeluarkan lebih dari 500 titik data menggunakan JFR, kebanyakannya hanya tersedia dengan menguraikan fail log. Pada masa ini, pengguna mesti memulakan rakaman, menghentikannya, membuang isinya ke cakera, dan kemudian menguraikan fail rakaman. Ini berfungsi dengan baik untuk profil aplikasi, tetapi tidak untuk tujuan pemantauan.Contoh penggunaan pemantauan adalah papan pemuka yang memaparkan kemas kini data yang dinamik. Ada overhead dengan membuat rakaman, seperti menyalin data dari repositori disk ke fail rakaman yang terpisah. Sekiranya ada cara untuk membaca data yang direkam dari repositori cakera tanpa membuat fail rakaman baru, banyak overhead dapat dielakkan.
  • Peningkatan yang dirancang  NullPointerExceptionsberkaitan dengan peningkatan kebolehgunaan pengecualian yang dihasilkan oleh JVM dengan menerangkan dengan tepat pemboleh ubah mana yang tidak ada. Pengarang cadangan ingin memberikan maklumat yang berguna kepada pemaju dan staf sokongan mengenai penamatan program yang lebih awal dan meningkatkan pemahaman program dengan lebih jelas mengaitkan pengecualian dinamik dengan kod program statik. Salah satu tujuannya adalah untuk mengurangkan kekeliruan dan kebimbangan mengenai pemaju NullPointerExceptions.
  • Penyangga byte yang tidak dipetakan tidak menentu akan menambahkan mod pemetaan fail khusus JDK yang membolehkan API FileChannel digunakan untuk membuat MappedByteBuffercontoh yang merujuk kepada memori yang tidak mudah menguap (NVM). NVM membolehkan pengaturcara membina dan mengemas kini keadaan program di sepanjang program berjalan tanpa memerlukan kos penyalinan atau terjemahan yang penting yang biasanya diperlukan oleh operasi input dan output. Ini amat penting untuk program transaksional. Oleh itu, tujuan utama Proposal Peningkatan JDK ini adalah untuk memastikan bahawa pelanggan dapat mengakses dan mengemas kini NVM dari program Java secara konsisten dan efisien. Matlamat sekunder adalah untuk menerapkan tingkah laku komit ini menggunakan API dalaman JDK yang dibatasi yang ditentukan dalam kelas Unsafe, sehingga dapat digunakan kembali oleh kelas selainMappedByteBufferyang mungkin perlu memberi komitmen kepada NVM. Tujuan lain adalah untuk membolehkan penyangga yang dipetakan melalui NVM dilacak oleh API yang ada untuk pemantauan dan pengurusan. Platform OS / CPU sasaran merangkumi Linux / x64 dan Linux / AArch64.
  • Tukar ekspresi mempermudah pengekodan dengan memanjangkan  switchsehingga dapat digunakan sebagai pernyataan atau ungkapan. Ekspresi suis dijangka menjadi ciri kekal di JDK 14, setelah dipratonton di JDK 12 dan JDK 13. Ekspresi suis juga mempersiapkan penggunaan padanan corak di switch. Pemadanan corak membolehkan pemaju mengekstrak komponen dari objek dengan lebih ringkas dan selamat. 
  • Peruntukan memori yang sedar NUMA untuk pengumpul sampah G1, bertujuan untuk meningkatkan prestasi G1 pada mesin besar. 
  • Penyingkiran pengumpul sampah Bersama Mark Sapu (CMS), yang sebelumnya tidak lagi digunakan dan dijadualkan untuk dibuang. Pengganti CMS telah muncul termasuk ZGC dan Shenandoah. 
  • Pengalihan ZGC ke MacOS. Sejauh ini ia hanya disokong di Linux.
  • Pembuangan alat pack200 dan unpack200 dan Pack200 API dalam java.util.jarpakej. Semua ini tidak digunakan lagi di Java SE 11 dengan tujuan untuk menghapusnya di masa depan. Pack200 adalah skema pemampatan untuk fail JAR.
  • Rekod, yang akan memberikan sintaks padat untuk menyatakan kelas yang merupakan pemegang telus untuk data yang tidak dapat diubah. Rekod menjadikannya mudah untuk membuat kelas yang pada dasarnya adalah pembawa data tanpa perlu menulis banyak boilerplate. Cadangan tersebut menyatakan bahawa mestilah mudah dan ringkas untuk menyatakan agregat data nominal yang tidak dapat diubah, berkelakuan baik dan tidak betul.
  • Alat pembungkusan, dalam fasa pengembangan inkubator, untuk mengemas aplikasi Java mandiri. Alat ini akan didasarkan pada JavaFX javapackager. Alat semacam itu telah dimasukkan ke dalam Java tetapi dipotong dari JDK 11 sebagai bagian dari penghapusan JavaFX.
  • Tingkatkan bahasa dengan pemadanan corak untuk instanceof operator. Ini akan menjadi ciri pratonton di JDK 14. Pencocokan corak memungkinkan logik umum dalam program, terutama pengekstrakan komponen dari objek, untuk dinyatakan dengan lebih ringkas dan selamat. Kod boleh dibuat ringkas dan selamat digunakan.
  • Pratonton blok teks kedua, literal rentetan multi-baris yang menghindari keperluan untuk kebanyakan urutan melarikan diri dan secara automatik membentuk rentetan dengan cara yang dapat diramalkan. Blok teks akan memberikan pengembang kendali atas format ketika diinginkan, mempermudah penulisan program Java, dan meningkatkan keterbacaan rentetan. Blok teks dipratonton dalam JDK 13; lelaran JDK 14 akan menambahkan urutan melarikan diri untuk menguruskan ruang putih eksplisit dan kawalan barisan baru.
  • Menghilangkan kombinasi algoritma pengumpulan sampah Parallel Scavenge dan Serial Old. Penyelenggara Java percaya bahawa kombinasi ini sangat sedikit digunakan tetapi memerlukan banyak penyelenggaraan.
  • Pengalihan ZGC (Z Garbage Collector) ke Windows. Ciri ini sekali lagi beralih ke senarai yang disasarkan secara rasmi, setelah kembali ke senarai yang dicadangkan untuk disasarkan.
  • API akses memori asing, dengan pengenalan API untuk program Java untuk mengakses memori asing dengan selamat dan efisien di luar timbunan Java. API ini harus berfungsi sebagai alternatif jalan utama di mana program Java mengakses memori, termasuk nio.ByteBufferdan sun.misc.Unsafe. API baru harus dapat beroperasi pada pelbagai jenis memori termasuk memori asli, berterusan dan timbunan yang dikendalikan. API tidak boleh merosakkan keselamatan JVM. Penyingkiran memori harus jelas dalam kod sumber. API diharapkan dapat membantu dalam pengembangan sokongan interoperasi asli yang merupakan tujuan Project Panama.
  • Penghentian penggunaan port Solaris / Sparc, Solaris / x64, dan Linux / Sparc, dengan tujuan untuk menghapusnya dalam rilis yang akan datang. Penurunan sokongan untuk port ini akan membolehkan penyumbang OpenJDK mempercepat pengembangan ciri baru. Walaupun Solaris dan Sparc adalah teknologi linchpin di Sun Microsystems, pencipta asal Java, mereka telah digantikan dalam ruang teknologi dalam beberapa tahun terakhir oleh pemproses OS Linux dan Intel.

Di mana memuat turun JDK 14

Anda boleh memuat turun sumber terbuka JDK 14 dari jdk.java.net untuk Linux, Windows dan macOS. Anda boleh memuat turun muat turun Oracle komersial Java SE 14 dari Oracle.com.