Java New Features không phù hợp với việc học thuộc máy móc theo từng phiên bản; phù hợp hơn là nắm bắt các trục chính: khả năng biểu đạt của ngôn ngữ, cải tiến standard library, mô hình concurrency, cải tiến JVM và các phiên bản hỗ trợ dài hạn. Trong phát triển hằng ngày, ưu tiên nắm vững các tính năng ổn định trong các phiên bản LTS như Java 8, 11, 17, 21, sau đó tìm hiểu các tính năng preview và incubator của những phiên bản tiếp theo khi cần.
Java 14
JDK 14 được phát hành vào ngày 17 tháng 3 năm 2020, đây là một phiên bản non-LTS.
Bài viết này sẽ chọn một số tính năng mới quan trọng để giới thiệu chi tiết:
- JEP 305: Pattern Matching for instanceof (instanceof pattern matching, preview)
- JEP 358: Helpful NullPointerExceptions (thông báo chính xác về NullPointerException)
- JEP 361: Switch Expressions (Standard) (switch expressions, phiên bản chính thức)
- JEP 359: Records (Preview) (từ khóa record, tính năng preview)
- JEP 368: Text Blocks (Second Preview) (text blocks, preview lần thứ hai)
- JEP 363: Remove the CMS Garbage Collector (loại bỏ CMS garbage collector)
Java 16 được phát hành chính thức vào ngày 16 tháng 3 năm 2021, là phiên bản không hỗ trợ dài hạn (LTS).
JDK 16 có tổng cộng 17 tính năng mới. Bài viết này chọn một số tính năng mới quan trọng để giới thiệu chi tiết:
- JEP 338: Vector API (Incubator) (Vector API, đợt incubator đầu tiên)
- JEP 376: ZGC: Concurrent Thread-Stack Processing (ZGC xử lý đồng thời thread stack)
- JEP 387: Elastic Metaspace (Metaspace co giãn)
- JEP 390: Warnings for Value-Based Classes (cảnh báo cho value-based class)
- JEP 394: Pattern Matching for instanceof (pattern matching của instanceof, chính thức)
- JEP 395: Records (record class, chính thức)
- JEP 396: Strongly Encapsulate JDK Internals by Default (mặc định áp dụng encapsulation nghiêm ngặt cho thành phần nội bộ JDK)
- JEP 397: Sealed Classes (sealed class, đợt preview thứ hai)
Java 17 (JDK 17) được phát hành chính thức vào ngày 14 tháng 9 năm 2021, là phiên bản hỗ trợ dài hạn (LTS) do Oracle xác định.
Theo lộ trình hỗ trợ Java SE được Oracle cập nhật vào tháng 4 năm 2026, Premier Support của Oracle JDK 17 kéo dài đến tháng 9 năm 2026, còn Extended Support kéo dài đến tháng 9 năm 2029. Chu kỳ cập nhật miễn phí và hỗ trợ thương mại của các bản phân phối JDK khác nhau không giống nhau, vì vậy môi trường production vẫn cần căn cứ vào bản phân phối đang sử dụng thực tế.
Java 18 được phát hành chính thức vào ngày 22 tháng 3 năm 2022, không phải là phiên bản hỗ trợ dài hạn.
JDK 18 có tổng cộng 8 tính năng mới. Bài viết này chọn một số tính năng mới quan trọng để giới thiệu chi tiết:
- JEP 400: UTF-8 by Default (UTF-8 làm character set mặc định)
- JEP 408: Simple Web Server (Web server tĩnh đơn giản)
- JEP 413: Code Snippets in Java API Documentation (code snippet trong tài liệu API)
- JEP 416: Reimplement Core Reflection with Method Handles (tái triển khai Core Reflection bằng Method Handles)
- JEP 417: Vector API (Third Incubator) (Vector API, incubator lần thứ ba)
- JEP 418: Internet-Address Resolution SPI (SPI phân giải địa chỉ Internet)
- JEP 419: Foreign Function & Memory API (Second Incubator) (Foreign Function & Memory API, incubator lần thứ hai)
JDK 19 được phát hành chính thức vào ngày 20 tháng 9 năm 2022, không phải là phiên bản hỗ trợ dài hạn.
JDK 19 có tổng cộng 7 tính năng mới. Bài viết này sẽ chọn một số tính năng mới quan trọng để giới thiệu chi tiết:
- JEP 424: Foreign Function & Memory API (API hàm và bộ nhớ bên ngoài) (preview)
- JEP 425: Virtual Threads (virtual thread) (preview)
- JEP 426: Vector API (incubator lần thứ tư)
- JEP 428: Structured Concurrency (incubator)
JDK 20 được phát hành vào ngày 21 tháng 3 năm 2023, là phiên bản không thuộc nhóm hỗ trợ dài hạn.
Phiên bản tiếp theo là JDK 21, phiên bản LTS được phát hành vào tháng 9 năm 2023.
JDK 20 có tổng cộng 7 tính năng mới. Bài viết này sẽ chọn một số tính năng mới quan trọng để giới thiệu chi tiết:
Java 21 (JDK 21) được phát hành chính thức vào ngày 19 tháng 9 năm 2023, là phiên bản hỗ trợ dài hạn (LTS) được Oracle công nhận.
Theo lộ trình hỗ trợ Java SE được Oracle cập nhật vào tháng 4 năm 2026, Premier Support của Oracle JDK 21 kéo dài đến tháng 9 năm 2028, còn Extended Support kéo dài đến tháng 9 năm 2031. Chu kỳ cập nhật miễn phí và hỗ trợ thương mại của các bản phân phối JDK khác nhau có thể khác nhau.
JDK 22 và JDK 23 đều là phiên bản non-LTS (long-term support), Oracle thường chỉ cung cấp bản cập nhật trong sáu tháng cho loại phiên bản này. Bản long-term support tiếp theo là JDK 25, phát hành vào tháng 9 năm 2025.
Hình dưới đây thể hiện số lượng tính năng mới và thời điểm cập nhật của từng phiên bản từ JDK 8 đến JDK 24:
JDK 26 được phát hành vào ngày 17 tháng 3 năm 2026, đây là một phiên bản không phải LTS (không hỗ trợ dài hạn). Phiên bản LTS trước đó là JDK 25, phiên bản LTS tiếp theo dự kiến là JDK 29.
JDK 26 có tổng cộng 10 tính năng mới. Bài viết này sẽ chọn một số tính năng mới quan trọng để giới thiệu chi tiết:
