Changelog JDK Java 11: Semua Fitur Baru
Daftar lengkap fitur dan JEP (JDK Enhancement Proposal) pada JDK 11, rilis LTS September 2018, termasuk HTTP Client, Flight Recorder, TLS 1.3, dan ZGC.
Changelog JDK Java 11
JDK 11 dirilis pada 25 September 2018 dan merupakan rilis LTS (Long-Term Support) kedua setelah JDK 8. Versi ini membawa banyak fitur penting untuk pengembangan aplikasi modern serta menandai dimulainya kebijakan rilis setiap 6 bulan sekali.
Ringkasan JEP
JDK 11 memuat total 17 JEP (JDK Enhancement Proposal):
| Nomor | Nama Fitur |
|---|---|
| 181 | Nest-Based Access Control |
| 309 | Dynamic Class-File Constants |
| 315 | Improve Aarch64 Intrinsics |
| 318 | Epsilon: A No-Op Garbage Collector |
| 320 | Remove the Java EE and CORBA Modules |
| 321 | HTTP Client (Standard) |
| 323 | Local-Variable Syntax for Lambda Parameters |
| 324 | Key Agreement with Curve25519 and Curve448 |
| 327 | Unicode 10 |
| 328 | Flight Recorder |
| 329 | ChaCha20 and Poly1305 Cryptographic Algorithms |
| 330 | Launch Single-File Source-Code Programs |
| 331 | Low-Overhead Heap Profiling |
| 332 | Transport Layer Security (TLS) 1.3 |
| 333 | ZGC: A Scalable Low-Latency Garbage Collector (Experimental) |
| 335 | Deprecate the Nashorn JavaScript Engine |
| 336 | Deprecate the Pack200 Tools and API |
Fitur Utama
HTTP Client (JEP 321) — Standar
HTTP Client menjadi fitur standar setelah dipreview pada JDK 9 dan JDK 10. Mendukung HTTP/2, WebSocket, dan API sinkron maupun asinkron:
HttpClient client = HttpClient.newHttpClient();
HttpRequest req = HttpRequest.newBuilder()
.uri(URI.create("https://ceritasaham.com"))
.build();
HttpResponse<String> resp = client.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println(resp.body());
Flight Recorder (JEP 328)
Low-overhead event recording untuk profil dan diagnostik JVM, tersedia tanpa biaya lisensi tambahan:
java -XX:StartFlightRecording:filename=recording.jfr -jar app.jar
TLS 1.3 (JEP 332)
Implementasi standar Transport Layer Security (TLS) 1.3 dengan kunci:
- Cipher suite modern tanpa RSA key exchange lama.
- Handshake lebih cepat (satu round-trip).
- Mendukung 0-RTT resumption.
Launch Single-File Source-Code Programs (JEP 330)
Menjalankan program Java langsung dari file sumber tanpa kompilasi manual:
java Hello.java
// Hello.java
public class Hello {
public static void main(String[] args) {
System.out.println("Hello, Java 11!");
}
}
ZGC (JEP 333) — Eksperimental
ZGC adalah garbage collector scalable dengan pause time rendah (di bawah 10 ms), meski masih bersifat eksperimental di JDK 11:
java -XX:+UnlockExperimentalVMOptions -XX:+UseZGC -jar app.jar
Epsilon GC (JEP 318)
Garbage collector "no-op" yang tidak mengumpulkan sampah sama sekali, berguna untuk mengukur overhead GC:
java -XX:+UnlockExperimentalVMOptions -XX:+UseEpsilonGC -jar app.jar
Local-Variable Syntax for Lambda Parameters (JEP 323)
Mendukung kata kunci var pada parameter lambda agar selaras dengan inferensi tipe:
list.stream().map((var x) -> x * 2).forEach(System.out::println);
Perubahan Lain
- Nest-Based Access Control (181): JVM memahami konsep nest untuk class bersarang, mengurangi kebutuhan pembuatan accessor sintetis.
- Dynamic Class-File Constants (309): Hadirnya
CONSTANT_Dynamic. - ChaCha20/Poly1305 (329): Algoritma enkripsi stream baru.
- X25519/X448 (324): Key agreement berbasis kurva eliptis modern.
- Unicode 10 (327).
- Penghapusan Java EE & CORBA (320): modul
java.activation,java.corba,java.transaction,java.xml.bind,java.xml.wsdihapus. - Deprecation Nashorn (335) dan Pack200 (336).
Kesimpulan
JDK 11 menjadi fondasi modern Java: HTTP Client standar, Flight Recorder gratis, TLS 1.3, serta keberadaan ZGC dan Epsilon sebagai langkah awal menuju garbage collector berperforma tinggi. Karena merupakan versi LTS, banyak aplikasi enterprise masih bermigrasi ke versi ini dari JDK 8.