Versi baru Java SE 18 telah dirilis dan ini adalah berita baru

Selepas enam bulan pembangunan, Oracle mengeluarkan pelepasan versi baru dari Jawa SE 18 (Edisi Standard), yang menggunakan projek sumber terbuka OpenJDK sebagai pelaksanaan rujukan.

Dalam versi baharu Java SE 18 ini disertakan dengan pengecualian penyingkiran beberapa ciri yang tidak digunakan, mengekalkan keserasian dengan versi lama platform Java, dan kebanyakan projek Java yang ditulis sebelum ini akan terus berfungsi tidak berubah apabila dijalankan dengan versi baharu.

Ciri baru utama Java SE 18

Dalam keluaran baharu Java SE 18 ini, pengekodan lalai ialah UTF-8. API Java yang memproses data teks berkod aksara kini akan menggunakan UTF-8 secara lalai pada semua platform, tanpa mengira tetapan sistem dan tetapan serantau. Untuk mengembalikan tingkah laku lama, di mana pengekodan dipilih dengan mengambil kira tempat sistem, anda boleh menggunakan parameter "-Dfile.encoding=COMPAT".

Satu lagi perubahan yang menyerlah ialah dia mereka bentuk semula pelaksanaan API java.lang.reflect (Refleksi Teras), direka untuk mendapatkan maklumat tentang kaedah, medan dan pembina kelas, serta akses kepada struktur dalaman kelas. api java.lang.reflect itu sendiri tidak berubah, tetapi kini dilaksanakan menggunakan pengecam kaedah yang disediakan oleh modul java.lang.invoke, bukannya menggunakan penjana bytecode. Perubahan yang dibenarkan untuk menyatukan dan memudahkan penyelenggaraan pelaksanaan java.lang.reflect dan java.lang.invoke.

Di samping itu, ia juga disebut bahawa pelaksanaan awal ketiga API Vektor dicadangkan, yang menyediakan fungsi untuk pengiraan vektor yang dilakukan menggunakan arahan vektor pemproses x86_64 dan AArch64 dan membolehkan anda menggunakan operasi secara serentak pada berbilang nilai (SIMD). Tidak seperti keupayaan yang disediakan dalam pengkompil JIT HotSpot untuk pengvektoran automatik operasi skalar, API baharu membolehkan anda mengawal pemvektoran secara eksplisit untuk pemprosesan data selari.

Ia juga diketengahkan bahawa menambah antara muka SPI (antara muka pembekal perkhidmatan) untuk menyelesaikan nama hos dan alamat IP, yang membolehkan anda menggunakan penyelesai alternatif dalam java.net.InetAddress yang tidak terikat dengan pemacu yang disediakan oleh sistem pengendalian.

Sebaliknya, ia telah dicadangkan pelaksanaan awal kedua API Fungsi & Memori Asing, yang mana aplikasi boleh berinteraksi dengan kod dan data di luar masa jalan Java. API baharu membolehkan panggilan cekap fungsi bukan JVM y akses memori yang tidak diuruskan oleh JVM. Sebagai contoh, anda boleh memanggil fungsi daripada perpustakaan kongsi luaran dan mengakses data proses tanpa menggunakan JNI.

Menambah a pelaksanaan eksperimen kedua padanan corak dalam ungkapan suis, yang membolehkan anda menggunakan templat fleksibel dan bukannya nilai tepat dalam teg "kes", meliputi beberapa nilai sekaligus, yang sebelum ini memerlukan rentetan ungkapan "jika...lain" yang rumit.

Pakej termasuk com.sun.net.httpserver, yang termasuk utiliti jwebserver dan API perpustakaan dengan pelaksanaannya daripada pelayan http yang mudah untuk menyampaikan kandungan statik (CGI dan pengawal seperti servlet tidak disokong). Pelayan http terbina dalam tidak dioptimumkan untuk beban kerja dan tidak menyokong kawalan akses atau pengesahan, kerana ia direka terutamanya untuk digunakan dalam proses pembangunan prototaip, nyahpepijat dan projek ujian.

Daripada perubahan yang lain yang menonjol:

  • JavaDoc menyokong teg "@snippet» untuk membenamkan contoh kerja dan coretan kod ke dalam dokumentasi API, yang boleh diakses dengan alat pengesahan, penyerlahan sintaks dan penyepaduan IDE.
  • Ditamatkan dan akan dialih keluar dalam keluaran akan datang, mekanisme penyiapan, serta kaedah yang berkaitan seperti Object.finalize(), Enum.finalize(), Runtime.runFinalization(), dan System.runFinalization().
  • para pemungut sampah ZGC (Pengumpul Sampah Z), SerialGC dan ParallelGC mereka menyokong deduplikasi rentetan.

Jawa SE 18 diklasifikasikan sebagai keluaran sokongan biasa, dengan kemas kini yang akan dikeluarkan sebelum versi seterusnya. Cawangan sokongan jangka panjang (LTS) hendaklah Java SE 17, yang akan menerima kemas kini sehingga 2029.

Adalah penting untuk diingat bahawa bermula dengan keluaran Java 10, projek itu bertukar kepada proses pembangunan baharu, yang bermaksud kitaran yang lebih pendek untuk pembentukan keluaran baharu. Kefungsian baharu kini sedang dibangunkan dalam cawangan induk yang sentiasa dikemas kini, termasuk perubahan yang telah selesai dan daripada cawangan mana yang bercabang setiap enam bulan untuk menstabilkan keluaran baharu.

Dapatkan Java SE 18

Bagi mereka yang berminat untuk dapat menguji keluaran baharu ini, sila ketahui bahawa binaan sedia untuk Linux (x86_64, AArch64), Windows (x86_64) dan macOS (x86_64, AArch64) dan boleh diperolehi dari pautan di bawah.