ceritasaham 

Changelog JDK Java 12: Semua Fitur Baru

Changelog JDK Java 12: Semua Fitur Baru

Daftar lengkap fitur dan JEP pada JDK 12, rilis Maret 2019, termasuk Switch Expressions, Shenandoah, dan penyempurnaan G1.

15 September 2026#java#jdk#changelog#jdk-12

Changelog JDK Java 12

JDK 12 dirilis pada 19 Maret 2019 dan merupakan rilis non-LTS. Versi ini fokus pada penyempurnaan performa, pengenalan Switch Expressions (preview), serta eksperimen Shenandoah GC.

Ringkasan JEP

NomorNama Fitur
189Shenandoah: A Low-Pause-Time Garbage Collector
230Microbenchmark Suite
325Switch Expressions (Preview)
334JVM Constants API
340One AArch64 Port, Not Two
341Default CDS Archives
344Abortable Mixed Collections for G1
346Promptly Return Unused Committed Memory from G1

Fitur Utama

Switch Expressions (JEP 325) — Preview

Penggunaan ekspresif switch sebagai expression yang mengembalikan nilai dan menghilangkan fall-through:

Day day = Day.MONDAY;
int numLetters = switch (day) {
    case MONDAY, FRIDAY, SUNDAY -> 6;
    case TUESDAY                -> 7;
    case THURSDAY, SATURDAY     -> 8;
    case WEDNESDAY              -> 9;
};

Merupakan fitur preview di JDK 12, dikembangkan lagi di JDK 13, dan menjadi standar penuh di JDK 14.

Menguji dengan Flag Preview

Fitur preview harus diaktifkan secara eksplisit:

javac --enable-preview --release 12 Demo.java
java --enable-preview Demo

Shenandoah GC (JEP 189) — Eksperimental

Shenandoah adalah garbage collector dengan pause time rendah yang bekerja secara konkuren (menjeda aplikasi sambil mengumpulkan sampah):

java -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC -jar app.jar

JVM Constants API (JEP 334)

API baru java.lang.constant untuk memodelkan entitas constant pool pada file class, dipakai oleh compiler yang menargetkan JVM (seperti ByteBuddy atau Groovy).

Penyempurnaan G1

  • Abortable Mixed Collections (344): G1 dapat menghentikan mixed collection yang terlalu lama sehingga pause tetap diprediksi.
  • Promptly Return Unused Committed Memory (346): G1 mengembalikan memori yang sudah tidak terpakai ke OS secara lebih cepat, bila memenuhi threshold.

Perubahan Lain

  • Microbenchmark Suite (230): Menambahkan benchmark JMH ke repository JDK untuk memudahkan developer mengukur performa.
  • Default CDS Archives (341): Class Data Sharing diaktifkan secara default, mempercepat startup JVM.
  • One AArch64 Port (340): Menggabungkan dua varian port ARM 64-bit menjadi satu.

Kesimpulan

JDK 12 adalah rilis transisi penting: Switch Expressions menandai arah baru sintaks yang lebih ekspresif, Shenandoah memperkenalkan GC concurrent pause rendah, dan JDK terus memoles G1 serta startup time melalui CDS.

mode [MARKET REGULER]build #ba129dblast update: Sep 22, 2026, 07:43:27 PM UTC▚▚ DYOR! Disclaimer ON! ▚▚