Changelog JDK Java 19: Semua Fitur Baru
Daftar lengkap fitur dan JEP pada JDK 19, rilis September 2022, termasuk Virtual Threads preview, Record Patterns preview, dan Structured Concurrency.
Changelog JDK Java 19
JDK 19 dirilis pada 20 September 2022 dan merupakan rilis non-LTS. Versi ini adalah tonggak besar Project Loom: Virtual Threads dan Structured Concurrency diperkenalkan (preview/incubator), bersama port RISC-V dan Record Patterns.
Ringkasan JEP
| Nomor | Nama Fitur |
|---|---|
| 405 | Record Patterns (Preview) |
| 422 | Linux/RISC-V Port |
| 424 | Foreign Function & Memory API (Preview) |
| 425 | Virtual Threads (Preview) |
| 426 | Vector API (Fourth Incubator) |
| 427 | Pattern Matching for switch (Third Preview) |
| 428 | Structured Concurrency (Incubator) |
Fitur Utama
Virtual Threads (JEP 425) — Preview
Basis dari Project Loom: Virtual Threads adalah thread yang ringan, dapat berjumlah jutaan, dikelola oleh JVM untuk menangani concurrency dengan sangat efisien:
// Preview di JDK 19 melalui flag --enable-preview
try (var executor = Executors.newVirtualThreadPerTaskExecutor()) {
IntStream.range(0, 10_000).forEach(i ->
executor.submit(() -> {
Thread.sleep(1000);
return i;
}));
}
Structured Concurrency (JEP 428) — Incubator
Mengelompokkan tugas-tugas serentak ke dalam satu scope agar error alias satukan siklus hidup task:
try (var scope = new StructuredTaskScope.ShutdownOnFailure()) {
Future<String> user = scope.fork(() -> findUser());
Future<Integer> order = scope.fork(() -> fetchOrder());
scope.join();
scope.throwIfFailed();
return new Response(user.resultNow(), order.resultNow());
}
Record Patterns (JEP 405) — Preview
Mendestrukturisasi record langsung dalam pattern matching, berpadu dengan instanceof dan switch:
if (obj instanceof Point(int x, int y)) {
System.out.println("x=" + x + ", y=" + y);
}
Foreign Function & Memory API (JEP 424) — Preview
Interoperabilitas yang lebih aman dengan kode native dibandingkan JNI, menggantikan incubator sebelumnya.
Pattern Matching for switch (JEP 427) — Preview Ketiga
Menyempurnakan dukungan guard dan menambah pengurutan kasus.
Perubahan Lain
- Linux/RISC-V Port (422): Dukungan arsitektur RISC-V pada Linux.
- Vector API (426): Incubator keempat.
Kesimpulan
JDK 19 merepresentasikan arah masa depan Java: Virtual Threads dan Structured Concurrency menawarkan model pemrograman konkuren yang jauh lebih sederhana, sambil Record Patterns dan Foreign Function & Memory API mempersempit jarak antara Java yang lugas dan fitur platform modern.