Changelog JDK Java 15: Semua Fitur Baru
Daftar lengkap fitur dan JEP pada JDK 15, rilis September 2020, termasuk Sealed Classes preview, Text Blocks standar, EdDSA, dan ZGC/Shenandoah final.
Changelog JDK Java 15
JDK 15 dirilis pada 15 September 2020 dan merupakan rilis non-LTS. Versi ini membawa Text Blocks menjadi standar, memperkenalkan Sealed Classes sebagai preview, serta menyelesaikan ZGC dan Shenandoah sebagai fitur resmi.
Ringkasan JEP
| Nomor | Nama Fitur |
|---|---|
| 339 | Edwards-Curve Digital Signature Algorithm (EdDSA) |
| 360 | Sealed Classes (Preview) |
| 371 | Hidden Classes |
| 372 | Remove the Nashorn JavaScript Engine |
| 373 | Reimplement the Legacy DatagramSocket API |
| 374 | Disable and Deprecate Biased Locking |
| 375 | Pattern Matching for instanceof (Second Preview) |
| 377 | ZGC: A Scalable Low-Latency Garbage Collector |
| 378 | Text Blocks (Standard) |
| 379 | Shenandoah: A Low-Pause-Time Garbage Collector |
| 381 | Remove the Solaris and SPARC Ports |
| 383 | Foreign-Memory Access API (Second Incubator) |
| 384 | Records (Second Preview) |
| 385 | Deprecate RMI Activation for Removal |
Fitur Utama
Text Blocks Menjadi Standar (JEP 378)
Setelah dua kali preview pada JDK 13 dan JDK 14, Text Blocks kini resmi menjadi fitur permanen Java:
String sql = """
SELECT * FROM users
WHERE active = true
""";
Sealed Classes (JEP 360) — Preview
Sealed classes membatasi subtipe yang boleh mewarisi sebuah class/interface, memberikan kendali hierarki tipe yang lebih ketat:
sealed interface Shape permits Circle, Square, Triangle { }
final class Circle implements Shape { }
final class Square implements Shape { }
EdDSA (JEP 339)
Penerapan Edwards-Curve Digital Signature Algorithm (EdDSA) sebagai skema tanda tangan digital baru selain RSA, DSA, dan ECDSA:
KeyPairGenerator kpg = KeyPairGenerator.getInstance("Ed25519");
KeyPair kp = kpg.generateKeyPair();
ZGC (JEP 377) dan Shenandoah (JEP 379) menjadi Fitur Resmi
Kedua garbage collector ber-pause-time rendah tidak lagi eksperimental dan tidak memerlukan flag UnlockExperimentalVMOptions:
java -XX:+UseZGC -jar app.jar # ZGC
java -XX:+UseShenandoahGC -jar app.jar # Shenandoah
Hidden Classes (JEP 371)
Mekanisme membuat class yang tidak dapat ditemukan/digunakan oleh kode lain secara langsung — berguna untuk framework yang membuat class dinamis seperti proxy.
Reimplement the Legacy DatagramSocket API (JEP 373)
Menggantikan implementasi lama DatagramSocket dan DatagramChannel dengan desain baru yang lebih mudah dipelihara.
Perubahan Lain
- Pattern Matching for instanceof (375): Preview kedua.
- Records (384): Preview kedua.
- Menghapus Nashorn JavaScript Engine (372).
- Menghapus port Solaris dan SPARC (381).
- Disable Biased Locking (374): Dependensi pada biased locking dimatikan dan didepresiasi demi performa yang dapat diprediksi.
- Menghapus RMI Activation (385): Didepresiasi untuk dihapus.
Kesimpulan
JDK 15 menutup era eksperimen untuk dua GC modern dan mengukuhkan Text Blocks. Pengenalan Sealed Classes menandai fondasi algebraic data types yang nantinya melengkapi Records dan Pattern Matching di rilis berikutnya.