Rilis Java SE 19

Setelah enam bulan pengembangan, Oracle telah merilis platform Java SE 19 (Java Platform, Standard Edition 19), yang menggunakan proyek sumber terbuka OpenJDK sebagai implementasi referensi. Dengan pengecualian penghapusan beberapa fitur yang tidak digunakan lagi, Java SE 19 mempertahankan kompatibilitas mundur dengan rilis platform Java sebelumnyaβ€”sebagian besar proyek Java yang ditulis sebelumnya akan tetap berfungsi tanpa modifikasi saat dijalankan di bawah versi baru. Build Java SE 19 (JDK, JRE, dan Server JRE) yang dapat diinstal disiapkan untuk Linux (x86_64, AArch64), Windows (x86_64), dan macOS (x86_64, AArch64). Dikembangkan oleh proyek OpenJDK, implementasi referensi Java 19 sepenuhnya open source di bawah lisensi GPLv2 dengan pengecualian GNU ClassPath untuk memungkinkan penautan dinamis ke produk komersial.

Java SE 19 dikategorikan sebagai rilis dukungan reguler, dengan pembaruan yang akan dirilis sebelum rilis berikutnya. Cabang Dukungan Jangka Panjang (LTS) harus Java SE 17, yang akan menerima pembaruan hingga 2029. Ingatlah bahwa dimulai dengan rilis Java 10, proyek beralih ke proses pengembangan baru, yang menyiratkan siklus pembentukan rilis baru yang lebih pendek. Fungsionalitas baru sekarang sedang dikembangkan dalam satu cabang master yang terus diperbarui, yang menggabungkan perubahan yang telah diselesaikan dan dari mana cabang bercabang setiap enam bulan untuk menstabilkan rilis baru.

Fitur baru di Java 19 meliputi:

  • Dukungan awal untuk pola rekaman telah diusulkan, memperluas kemampuan pencocokan pola Java 16 untuk mengurai nilai kelas dari tipe rekaman. Misalnya: record Point(int x, int y) {} void printSum(Object o) { if (o instanceof Point(int x, int y)) { System.out.println(x+y); } }
  • Build Linux memberikan dukungan untuk arsitektur RISC-V.
  • Menambahkan dukungan awal untuk FFM (Foreign Function & Memory) API, yang memungkinkan Anda mengatur interaksi program Java dengan kode dan data eksternal melalui fungsi pemanggilan dari pustaka eksternal dan mengakses memori di luar JVM.
  • Menambahkan dukungan untuk utas virtual, yaitu utas ringan yang sangat menyederhanakan penulisan dan pemeliharaan aplikasi multi-utas berkinerja tinggi.
  • Implementasi pendahuluan keempat dari Vector API diusulkan, yang menyediakan fungsi untuk perhitungan vektor yang dilakukan menggunakan instruksi vektor dari prosesor x86_64 dan AArch64 dan memungkinkan Anda untuk secara bersamaan menerapkan operasi ke beberapa nilai sekaligus (SIMD). Tidak seperti kemampuan yang disediakan dalam kompiler JIT HotSpot untuk autovektorisasi operasi skalar, API baru memungkinkan kontrol vektorisasi secara eksplisit untuk pemrosesan data paralel.
  • Implementasi eksperimental ketiga dari pencocokan pola dalam ekspresi sakelar telah ditambahkan, yang memungkinkan penggunaan templat fleksibel dalam label kasus yang mencakup serangkaian nilai sekaligus, yang sebelumnya telah digunakan rantai pernyataan if...else yang rumit. Benda o = 123L; String diformat = switch (o) { case Integer i -> String.format("int %d", i); case Panjang l -> String.format("panjang %d", l); case Ganda d -> String.format("ganda %f", d); kasus String s -> String.format("String %s", s); default -> o.toString(); };
  • API Paralelisme Terstruktur eksperimental telah ditambahkan yang membuatnya lebih mudah untuk mengembangkan aplikasi multi-utas dengan memperlakukan banyak tugas yang berjalan pada utas berbeda sebagai satu unit.

Sumber: opennet.ru

Tambah komentar