Java 25 Menghadirkan Flexible Constructor Bodies dan Scoped Values, Namun Structured Concurrency Masih dalam Preview

Tim Komunitas BigGo
Java 25 Menghadirkan Flexible Constructor Bodies dan Scoped Values, Namun Structured Concurrency Masih dalam Preview

Java 25 telah resmi diluncurkan sebagai rilis Long-Term Support (LTS) terbaru, menghadirkan delapan belas fitur baru yang mengatasi berbagai masalah yang telah lama dihadapi developer. Rilis ini menandai tonggak penting dalam evolusi Java , khususnya dengan peningkatan pada fleksibilitas constructor dan manajemen concurrency.

Informasi Rilis:

  • Nomor Build: 36 (build GA)
  • Tanggal Release Candidate: 15 Agustus 2025
  • Lisensi: GPL ( OpenJDK )
  • Status LTS: Rilis dukungan jangka panjang
  • Unduhan: https://jdk.java.net/25
  • Total JEP: 18 proposal peningkatan
  • Kompatibilitas Mundur: Mempertahankan kompatibilitas dari Java 1.4+

Flexible Constructor Bodies Akhirnya Hadir

Salah satu penambahan yang paling disambut baik adalah JEP 513 : Flexible Constructor Bodies, yang memungkinkan developer untuk memvalidasi dan mentransformasi parameter sebelum memanggil parent constructor. Perubahan ini mengatasi keterbatasan fundamental yang telah membuat frustrasi developer Java selama bertahun-tahun.

Sebelumnya, developer harus menggunakan solusi alternatif seperti static methods untuk melakukan validasi sebelum memanggil super(). Komunitas menyambut baik perubahan ini karena membuat kode Java lebih intuitif dan menghilangkan kebutuhan akan solusi kreatif yang terasa berlawanan dengan intuisi bagi banyak programmer.

Scoped Values Mencapai Stabilitas

JEP 506 memperkenalkan Scoped Values sebagai fitur yang stabil, menyediakan alternatif yang lebih bersih dibandingkan variabel ThreadLocal untuk meneruskan konteks melalui pemanggilan method. Fitur ini sangat berharga untuk membangun aplikasi bergaya framework tanpa bergantung pada variabel statis atau meneruskan objek konteks besar di seluruh codebase.

Komunitas melihat Scoped Values sebagai game-changer untuk menulis aplikasi Java yang lebih mudah dipelihara, terutama dalam skenario di mana konteks perlu dibagikan di berbagai lapisan aplikasi tanpa menciptakan kode yang tightly coupled.

Structured Concurrency Tetap dalam Preview

Meskipun sangat dinanti-nantikan, Structured Concurrency melanjutkan fase preview-nya dengan JEP 505 yang menandai iterasi preview kelima. Pendekatan hati-hati ini mencerminkan komitmen Java untuk menguji fitur secara menyeluruh sebelum rilis penuh, meskipun beberapa developer mengungkapkan ketidaksabaran dengan periode preview yang diperpanjang.

Fitur ini bertujuan untuk menyediakan alternatif yang lebih baik untuk pola async/await tradisional, meskipun reaksi komunitas tetap beragam tentang apakah ini akan menawarkan peningkatan signifikan dibandingkan solusi concurrency yang sudah ada.

Fitur Utama Java 25:

  • JEP 513: Flexible Constructor Bodies - memungkinkan validasi parameter sebelum pemanggilan super()
  • JEP 506: Scoped Values - alternatif stabil untuk variabel ThreadLocal
  • JEP 505: Structured Concurrency (Fifth Preview) - pola concurrency yang ditingkatkan
  • JEP 519: Compact Object Headers - mengurangi overhead memori
  • JEP 521: Generational Shenandoah - garbage collection yang disempurnakan
  • JEP 511: Module Import Declarations - penggunaan modul yang disederhanakan
  • JEP 512: Compact Source Files and Instance Main Methods - sintaks yang dipermudah

Peningkatan Performa dan Developer Experience

Java 25 juga memperkenalkan beberapa peningkatan performa, termasuk Compact Object Headers ( JEP 519 ) dan peningkatan garbage collector Generational Shenandoah ( JEP 521 ). Perubahan ini fokus pada pengurangan overhead memori dan peningkatan efisiensi garbage collection.

Untuk developer yang khawatir tentang lisensi Oracle , komunitas terus menekankan bahwa OpenJDK tetap sepenuhnya open source di bawah lisensi GPL , menyediakan jalur yang jelas untuk proyek open source dan komersial tanpa kekhawatiran hukum.

Rilis ini mempertahankan reputasi Java untuk kompatibilitas mundur, dengan aplikasi yang dibangun pada Java 1.4 terus berjalan dengan sukses pada versi modern, mendemonstrasikan komitmen platform terhadap stabilitas jangka panjang.

Referensi: Java 25 / JDK 25: General Availability