Java 25 Membawa Flexible Constructor Bodies dan Scoped Values, Tetapi Structured Concurrency Masih dalam Preview

Pasukan Komuniti BigGo
Java 25 Membawa Flexible Constructor Bodies dan Scoped Values, Tetapi Structured Concurrency Masih dalam Preview

Java 25 telah dilancarkan secara rasmi sebagai keluaran Long-Term Support (LTS) terkini, membawa lapan belas ciri baharu yang menangani masalah pembangun yang telah lama wujud. Keluaran ini menandakan pencapaian penting dalam evolusi Java , terutamanya dengan penambahbaikan kepada fleksibiliti constructor dan pengurusan concurrency.

Maklumat Keluaran:

  • Nombor Binaan: 36 (binaan GA)
  • Tarikh Calon Keluaran: 15 Ogos 2025
  • Lesen: GPL ( OpenJDK )
  • Status LTS: Keluaran Sokongan Jangka Panjang
  • Muat Turun: https://jdk.java.net/25
  • Jumlah JEPs: 18 cadangan penambahbaikan
  • Keserasian Mundur: Mengekalkan keserasian dari Java 1.4+

Flexible Constructor Bodies Akhirnya Tiba

Salah satu penambahan yang paling disambut baik ialah JEP 513: Flexible Constructor Bodies, yang membolehkan pembangun mengesahkan dan mengubah parameter sebelum memanggil parent constructor. Perubahan ini menangani batasan asas yang telah mengecewakan pembangun Java selama bertahun-tahun.

Sebelum ini, pembangun terpaksa menggunakan penyelesaian sementara seperti kaedah statik untuk melakukan pengesahan sebelum memanggil super(). Komuniti telah menyambut baik perubahan ini kerana ia menjadikan kod Java lebih intuitif dan menghapuskan keperluan untuk penyelesaian kreatif yang terasa berlawanan dengan intuisi kepada ramai pengaturcara.

Scoped Values Mencapai Kestabilan

JEP 506 memperkenalkan Scoped Values sebagai ciri yang stabil, menyediakan alternatif yang lebih bersih kepada pembolehubah ThreadLocal untuk menghantar konteks melalui panggilan kaedah. Ciri ini amat berharga untuk membina aplikasi gaya framework tanpa bergantung pada pembolehubah statik atau menghantar objek konteks yang besar sepanjang kod asas.

Komuniti melihat Scoped Values sebagai pengubah permainan untuk menulis aplikasi Java yang lebih boleh diselenggara, terutamanya dalam senario di mana konteks perlu dikongsi merentasi pelbagai lapisan aplikasi tanpa mencipta kod yang berkait rapat.

Structured Concurrency Kekal dalam Preview

Walaupun sangat dinanti-nantikan, Structured Concurrency meneruskan fasa previewnya dengan JEP 505 menandakan iterasi preview kelima. Pendekatan berhati-hati ini mencerminkan komitmen Java untuk menguji ciri-ciri secara menyeluruh sebelum keluaran penuh, walaupun sesetengah pembangun menyatakan ketidaksabaran dengan tempoh preview yang dipanjangkan.

Ciri ini bertujuan untuk menyediakan alternatif yang lebih baik kepada corak async/await tradisional, walaupun reaksi komuniti kekal bercampur-campur tentang sama ada ia akan menawarkan penambahbaikan yang ketara berbanding penyelesaian concurrency sedia ada.

Ciri-ciri Utama Java 25:

  • JEP 513: Flexible Constructor Bodies - membenarkan pengesahan parameter sebelum panggilan super()
  • JEP 506: Scoped Values - alternatif yang stabil kepada pembolehubah ThreadLocal
  • JEP 505: Structured Concurrency (Fifth Preview) - corak konkurensi yang diperbaiki
  • JEP 519: Compact Object Headers - mengurangkan overhed memori
  • JEP 521: Generational Shenandoah - pengumpulan sampah yang dipertingkatkan
  • JEP 511: Module Import Declarations - penggunaan modul yang dipermudahkan
  • JEP 512: Compact Source Files and Instance Main Methods - sintaks yang diperkemas

Penambahbaikan Prestasi dan Pengalaman Pembangun

Java 25 juga memperkenalkan beberapa peningkatan prestasi, termasuk Compact Object Headers ( JEP 519 ) dan penambahbaikan pengumpul sampah Generational Shenandoah ( JEP 521 ). Perubahan ini memberi tumpuan kepada mengurangkan overhed memori dan meningkatkan kecekapan pengumpulan sampah.

Bagi pembangun yang bimbang tentang pelesenan Oracle , komuniti terus menekankan bahawa OpenJDK kekal sepenuhnya sumber terbuka di bawah pelesenan GPL , menyediakan laluan yang jelas untuk kedua-dua projek sumber terbuka dan komersial tanpa kebimbangan undang-undang.

Keluaran ini mengekalkan reputasi Java untuk keserasian ke belakang, dengan aplikasi yang dibina pada Java 1.4 terus berjalan dengan jayanya pada versi moden, menunjukkan komitmen platform terhadap kestabilan jangka panjang.

Rujukan: Java 25 / JDK 25: General Availability