ceritasaham 

Changelog JDK Java 17: Semua Fitur Baru

Changelog JDK Java 17: Semua Fitur Baru

Daftar lengkap fitur dan JEP pada JDK 17, rilis LTS September 2021, termasuk Sealed Classes standar, Pattern Matching for switch preview, dan Pseudo-Random Generator.

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

Changelog JDK Java 17

JDK 17 dirilis pada 14 September 2021 dan merupakan rilis LTS (dukungan jangka panjang) kedua era rilis 6 bulan, menggantikan JDK 11. Versi ini menstandarkan Sealed Classes, mengenalkan Pattern Matching for switch (preview), serta merombak Random Number Generator.

Ringkasan JEP

NomorNama Fitur
306Restore Always-Strict Floating-Point Semantics
356Enhanced Pseudo-Random Number Generators
382New macOS Rendering Pipeline
391macOS/AArch64 Port
398Deprecate the Applet API for Removal
403Strongly Encapsulate JDK Internals
406Pattern Matching for switch (Preview)
407Remove RMI Activation
409Sealed Classes
410Remove the Experimental AOT and JIT Compiler
411Deprecate the Security Manager for Removal
412Foreign Function & Memory API (Incubator)
414Vector API (Second Incubator)
415Context-Specific Deserialization Filters

Fitur Utama

Sealed Classes Menjadi Standar (JEP 409)

Setelah dua kali preview (JDK 15 dan JDK 16), Sealed Classes kini resmi menjadi bagian dari bahasa:

sealed interface Shape
    permits Circle, Square, Rectangle { }

record Circle(double radius) implements Shape { }
record Square(double side) implements Shape { }

Pattern Matching for switch (JEP 406) — Preview

Penggabungan switch expressions dengan pattern matching, memungkinkan switch memeriksa tipe objek:

static String formatter(Object o) {
    return switch (o) {
        case Integer i -> "int: " + i;
        case Long l   -> "long: " + l;
        case String s -> "string: " + s;
        default       -> "lainnya";
    };
}

Enhanced Pseudo-Random Number Generators (JEP 356)

API baru untuk berbagai generator angka acak (LXM yang terunggul) serta antarmuka terpadu RandomGenerator:

RandomGenerator gen = RandomGeneratorFactory.of("L64X128MixRandom").create();
int nilai = gen.nextInt(1, 101);

Strongly Encapsulate JDK Internals (JEP 403)

Lanjutan dari JDK 16: internal API JDK di-encapsulasi dengan keras. Opsi --add-opens dan sun.* dibatasi.

New macOS Rendering Pipeline (JEP 382)

Pipeline rendering macOS baru yang memanfaatkan Metal API menggantikan pipeline Apple yang lama, sekaligus menyediakan base untuk port macOS/AArch64 (JEP 391).

Perubahan Lain

  • Restore Always-Strict Floating-Point (306): Perhitungan float selalu menggunakan semantik strict untuk menghindari ketidakkonsistenan platform.
  • Remove RMI Activation (407).
  • Remove Experimental AOT/JIT Compiler (410): Mencabut JIT compiler Graal eksperimental dan AOT.
  • Deprecate Security Manager untuk dihapus (411).
  • Context-Specific Deserialization Filters (415): Memakai filter deserialisasi per-konteks dengan ObjectInputFilter.
  • Vector API (414): Incubator kedua.
  • Foreign Function & Memory API (412): Incubator.

Kesimpulan

JDK 17 merupakan fondasi LTS modern untuk ekosistem Java. Dengan Sealed Classes, Records, dan Pattern Matching dari rilis sebelumnya, developer kini memiliki toolkit bahasa yang kuat untuk menulis kode ekspresif, aman, dan mudah dipelihara — menjadikan JDK 17 target migrasi utama dari JDK 8 dan JDK 11.

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