Changelog JDK Java 14: Semua Fitur Baru
Daftar lengkap fitur dan JEP pada JDK 14, rilis Maret 2020, termasuk Switch Expressions standar, Records preview, Pattern Matching preview, dan Helpful NPE.
Changelog JDK Java 14
JDK 14 dirilis pada 17 Maret 2020 dan merupakan rilis non-LTS. Versi ini dikenal karena Switch Expressions menjadi standar, memunculkan Records dan Pattern Matching sebagai preview, serta pembatalan legacy GC CMS.
Ringkasan JEP
| Nomor | Nama Fitur |
|---|---|
| 305 | Pattern Matching for instanceof (Preview) |
| 343 | Packaging Tool (Incubator) |
| 345 | NUMA-Aware Memory Allocation for G1 |
| 349 | JFR Event Streaming |
| 352 | Non-Volatile Mapped Byte Buffers |
| 358 | Helpful NullPointerExceptions |
| 359 | Records (Preview) |
| 361 | Switch Expressions (Standard) |
| 362 | Deprecate the Solaris and SPARC Ports |
| 363 | Remove the Concurrent Mark Sweep (CMS) GC |
| 364 | ZGC on macOS |
| 365 | ZGC on Windows |
| 366 | Deprecate the ParallelScavenge + SerialOld GC Combination |
| 367 | Remove the Pack200 Tools and API |
| 368 | Text Blocks (Second Preview) |
| 370 | Foreign-Memory Access API (Incubator) |
Fitur Utama
Switch Expressions Menjadi Standar (JEP 361)
Setelah dua kali preview, Switch Expressions dijadwalkan menjadi fitur standar permanen di JDK 14.
Helpful NullPointerExceptions (JEP 358)
Pesan NullPointerException kini menampilkan variabel mana yang bernilai null dan operasi apa yang gagal:
Cannot invoke "String.length()" because "name" is null
Records (JEP 359) — Preview
Records menyediakan cara ringkas untuk mendeklarasikan class data carrier tanpa boilerplate getter/equals/hashCode/toString:
// Preview di JDK 14
record Point(int x, int y) { }
Otomatis menghasilkan:
- Constructor kanonik.
- Aksesor
x()dany(). - Implementasi
equals,hashCode, dantoString.
Pattern Matching for instanceof (JEP 305) — Preview
Menghilangkan pola cast yang berulang dengan menggabungkan instanceof dan binding deklarasi variabel:
if (obj instanceof String s) {
System.out.println(s.length());
}
JFR Event Streaming (JEP 349)
Memungkinkan akses data event JFR secara streaming tanpa downtime, cocok untuk monitoring berkelanjutan.
Pembuangan CMS (JEP 363)
Garbage collector lama Concurrent Mark Sweep (CMS) resmi dihapus karena sudah tidak relevan, digantikan oleh G1, ZGC, dan Shenandoah.
ZGC di macOS & Windows (JEP 364, 365)
ZGC kini berjalan di platform macOS dan Windows.
Perubahan Lain
- Packaging Tool (343): Incubator untuk memproduksi self-contained application.
- NUMA-Aware G1 (345): G1 mempertimbangkan NUMA untuk alokasi memori.
- Foreign-Memory Access API (370): Incubator untuk akses memori di luar heap secara aman.
- Text Blocks preview kedua (368).
- Penghapusan Pack200 (367).
Kesimpulan
JDK 14 adalah rilis bersejarah: Switch Expressions resmi, dan dua fitur besar — Records serta Pattern Matching — memulai perjalanan preview menuju kesempurnaan yang kelak melengkapi Java sebagai bahasa pemrograman modern, produktif, dan ekspresif.