Setelah enam bulan pengembangan, Oracle merilis rilis versi baru dari Jawa SE 18 (Edisi Standar), yang menggunakan proyek open source OpenJDK sebagai implementasi referensi.
Dalam versi baru Java SE 18 ini hadir dengan pengecualian penghapusan beberapa fitur usang, mempertahankan kompatibilitas dengan versi platform Java yang lebih lama, dan sebagian besar proyek Java yang ditulis sebelumnya akan terus bekerja tanpa perubahan saat dijalankan dengan versi baru.
Fitur baru utama Java SE 18
Dalam rilis baru Java SE 18 pengkodean default adalah UTF-8. Java API yang memproses data teks yang disandikan karakter sekarang akan menggunakan UTF-8 secara default di semua platform, terlepas dari pengaturan sistem dan pengaturan regional. Untuk mengembalikan perilaku lama, di mana pengkodean dipilih dengan mempertimbangkan lokal sistem, Anda dapat menggunakan parameter “-Dfile.encoding=COMPAT”.
Perubahan lain yang menonjol adalah dia mendesain ulang implementasi API java.lang.reflect (Core Reflection), dirancang untuk memperoleh informasi tentang metode, bidang dan konstruktor kelas, serta akses ke struktur internal kelas. api Java.lang.reflect itu sendiri tidak berubah, tetapi sekarang diimplementasikan menggunakan pengidentifikasi metode yang disediakan oleh modul java.lang.invoke, alih-alih menggunakan generator bytecode. Perubahan memungkinkan untuk menyatukan dan memfasilitasi pemeliharaan implementasi java.lang.reflect dan java.lang.invoke.
Selain itu, disebutkan juga bahwa implementasi awal ketiga dari Vector API diusulkan, yang menyediakan fungsi untuk penghitungan vektor yang dilakukan menggunakan instruksi vektor dari prosesor x86_64 dan AArch64 dan memungkinkan Anda untuk menerapkan operasi secara bersamaan ke beberapa nilai (SIMD). Berbeda dengan kemampuan yang disediakan dalam kompiler HotSpot JIT untuk vektorisasi otomatis operasi skalar, API baru memungkinkan Anda mengontrol vektorisasi secara eksplisit untuk pemrosesan data paralel.
Itu juga disorot itu menambahkan antarmuka SPI (antarmuka penyedia layanan) untuk menyelesaikan nama host dan alamat IP, yang memungkinkan Anda untuk menggunakan resolver alternatif di java.net.InetAddress yang tidak terikat dengan driver yang disediakan oleh sistem operasi.
Di sisi lain, telah diusulkan implementasi awal kedua dari Foreign Function & Memory API, yang dengannya aplikasi dapat berinteraksi dengan kode dan data di luar waktu proses Java. API baru memungkinkan pemanggilan fungsi non-JVM yang efisien y mengakses memori yang tidak dikelola oleh JVM. Misalnya, Anda dapat memanggil fungsi dari pustaka bersama eksternal dan mengakses data proses tanpa menggunakan JNI.
Menambahkan file implementasi eksperimental kedua dari pencocokan pola dalam ekspresi mengalihkan, yang memungkinkan Anda untuk menggunakan templat fleksibel alih-alih nilai yang tepat dalam tag "huruf besar", yang mencakup sejumlah nilai sekaligus, yang sebelumnya memerlukan string ekspresi "jika... lain" yang rumit.
Paket berisi com.sun.net.httpserver, yang mencakup utilitas jwebserver dan API perpustakaan dengan implementasi dari server http sederhana untuk menyajikan konten statis (CGI dan pengontrol seperti servlet tidak didukung). Server http bawaan tidak dioptimalkan untuk beban kerja dan tidak mendukung kontrol akses atau otentikasi, karena dirancang terutama untuk digunakan dalam proses pengembangan proyek pembuatan prototipe, debugging, dan pengujian.
Dari perubahan lainnya yang menonjol:
- JavaDoc mendukung tag "@potongan» untuk menyematkan contoh kerja dan cuplikan kode ke dalam dokumentasi API, yang dapat diakses dengan alat validasi, penyorotan sintaks, dan integrasi IDE.
- Tidak digunakan lagi dan akan dihapus dalam rilis mendatang, mekanisme penyelesaian, serta metode terkait seperti Object.finalize(), Enum.finalize(), Runtime.runFinalization(), dan System.runFinalization().
- pengumpul sampah ZGC (Z Pengumpul Sampah), SerialGC dan ParallelGC mereka mendukung deduplikasi string.
Jawa SE 18 diklasifikasikan sebagai rilis dukungan reguler, dengan pembaruan yang akan dirilis sebelum versi berikutnya. Cabang dukungan jangka panjang (LTS) harus Java SE 17, yang akan menerima pembaruan hingga 2029.
Penting untuk diingat bahwa dimulai dengan rilis Java 10, proyek beralih ke proses pengembangan baru, yang berarti siklus yang lebih pendek untuk pembentukan rilis baru. Fungsionalitas baru sekarang sedang dikembangkan di cabang master yang terus diperbarui, yang mencakup perubahan yang telah diselesaikan dan cabang mana yang bercabang setiap enam bulan untuk menstabilkan rilis baru.
Dapatkan Java SE 18
Bagi mereka yang tertarik untuk dapat menguji rilis baru ini, ketahuilah bahwa build sudah siap untuk Linux (x86_64, AArch64), Windows (x86_64), dan macOS (x86_64, AArch64) dan dapat diperoleh dari tautan di bawah.