ceritasaham 

Changelog JDK Java 21: Semua Fitur Baru

Changelog JDK Java 21: Semua Fitur Baru

Daftar lengkap fitur dan JEP pada JDK 21, rilis LTS September 2023, termasuk Virtual Threads, Record Patterns, Pattern Matching for switch, dan Sequenced Collections.

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

Changelog JDK Java 21

JDK 21 dirilis pada 19 September 2023 dan merupakan rilis LTS terbaru, menggantikan JDK 17. Ini adalah rilis terbesar sejak JDK 8, dengan Virtual Threads, Record Patterns, dan Pattern Matching for switch resmi menjadi fitur permanen.

Ringkasan JEP

NomorNama Fitur
430String Templates (Preview)
431Sequenced Collections
439Generational ZGC
440Record Patterns
441Pattern Matching for switch
442Foreign Function & Memory API (Third Preview)
443Unnamed Patterns and Variables (Preview)
444Virtual Threads
445Unnamed Classes and Instance Main Methods (Preview)
446Scoped Values (Preview)
448Vector API (Sixth Incubator)
449Deprecate the Windows 32-bit x86 Port for Removal
451Prepare to Disallow the Dynamic Loading of Agents
452Key Encapsulation Mechanism API
453Structured Concurrency (Preview)

Fitur Utama

Virtual Threads Menjadi Standar (JEP 444)

Setelah dua kali preview (JDK 19 dan JDK 20), Virtual Threads resmi menjadi bagian permanen Java — menyederhanakan penulisan aplikasi konkuren berthroughput tinggi:

// Seat-server: satu thread per request dengan biaya sangat ringan
try (var executor = Executors.newVirtualThreadPerTaskExecutor()) {
    executor.submit(() -> System.out.println("Tugas pada virtual thread"));
}

Record Patterns Menjadi Standar (JEP 440)

Record Patterns berada dalam pola destructuring yang lengkap, bersama dengan nested patterns:

record Point(int x, int y) { }
record Line(Point a, Point b) { }

if (obj instanceof Line(Point(var x1, var y1), Point(var x2, var y2))) {
    System.out.printf("(%d,%d)-(%d,%d)%n", x1, y1, x2, y2);
}

Pattern Matching for switch Menjadi Standar (JEP 441)

Switch kini dapat melakukan pattern matching pada tipe, memberikan pendekatan ekspresif dan exhaustive:

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

static double area(Shape s) {
    return switch (s) {
        case Square(double side) -> side * side;
        case Circle(double r)    -> Math.PI * r * r;
    };
}

Sequenced Collections (JEP 431)

Antarmuka baru untuk akses elemen pertama/terakhir dengan cara yang terstandar:

SequencedCollection<String> list = new ArrayList<>();
list.addLast("a");
list.addLast("b");
String first = list.getFirst();  // "a"
String last  = list.getLast();   // "b"

Generational ZGC (JEP 439)

ZGC diperluas dengan mode generational yang memisahkan objek muda dan tua, menurunkan overhead alokasi dan pause:

java -XX:+UseZGC -XX:+ZGenerational -jar app.jar

String Templates (JEP 430) — Preview

Fasilitas string interpolation yang aman dan dapat dipilah (processors):

String name = "Dunia";
String msg = STR."Halo, \{name}!";

Unnamed Patterns and Variables (JEP 443) — Preview

Menggunakan _ untuk variabel yang tidak dibutuhkan:

case Point(_, _) -> "diabaikan";

Unnamed Classes and Instance Main Methods (JEP 445) — Preview

Menulis program sederhana tanpa boilerplate class dan public static void main:

void main() {
    System.out.println("Halo tanpa class wrapper!");
}

Perubahan Lain

  • Scoped Values (446): Dipromosikan menjadi preview.
  • Structured Concurrency (453): Dipromosikan menjadi preview.
  • Key Encapsulation Mechanism API (452): Dukungan KEM untuk post-quantum cryptography.
  • Deprecate Windows 32-bit x86 Port (449).
  • Prepare to Disallow Dynamic Loading of Agents (451).
  • Foreign Function & Memory API (442): Preview ketiga.
  • Vector API (448): Incubator keenam.

Kesimpulan

JDK 21 adalah rilis LTS yang mewujudkan janji Project Loom dan kepenuhan model pemrograman modern Java. Virtual Threads, Record Patterns, dan Pattern Matching for switch — bersama Records dan Sealed Classes dari rilis sebelumnya — menjadikan Java 21 target migrasi paling menarik. Bagi developer yang masih di JDK 8/11/17, JDK 21 merupakan prioritas upgrade berikutnya.

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