Đúng nhịp sáu tháng một lần, Java tiếp tục đón phiên bản mới. Ngày 15/9/2026, Oracle công bố Java 27 (JDK 27) với 9 đề xuất cải tiến (JEP). Đây không phải bản hỗ trợ dài hạn, nhưng lại chứa một số thay đổi đáng để các đội Java chú ý sớm, đặc biệt ở mảng bảo mật trước thời đại máy tính lượng tử và hiệu năng bộ nhớ của JVM.

Chuyện gì đã xảy ra?

JDK 27 là bản non-LTS thứ hai kể từ JDK 25 (bản LTS gần nhất). Theo InfoQ, năm trong số chín JEP vẫn ở trạng thái preview hoặc incubator, nghĩa là cần bật cờ để dùng thử và có thể còn thay đổi. Bốn JEP còn lại là tính năng hoàn chỉnh. Cùng lúc, bản JDK 28 đã có early access và được dự kiến phát hành vào tháng 3/2027.

Các JEP đáng chú ý

Bảo mật: chuẩn bị cho kỷ nguyên hậu lượng tử

  • JEP 527 – Trao đổi khóa lai hậu lượng tử cho TLS 1.3: kết hợp thuật toán truyền thống với thuật toán kháng lượng tử khi bắt tay TLS. Mục tiêu là chống lại kịch bản "thu thập bây giờ, giải mã sau", khi kẻ tấn công lưu lưu lượng mã hóa hôm nay để giải mã trong tương lai. JEP này xây dựng trên JEP 496 đã có từ JDK 24.
  • JEP 538 – Mã hóa PEM cho đối tượng mật mã (preview lần 3): API chuẩn để đọc ghi khóa, chứng chỉ ở định dạng PEM, không còn phải tự viết hàm chuyển đổi hoặc phụ thuộc thư viện ngoài. Ở lần preview này, interface DEREncodable được đổi tên thành BinaryEncodable.
  • JEP 536 – Che dữ liệu nhạy cảm trong JFR: giúp loại bỏ thông tin nhạy cảm khỏi dữ liệu Java Flight Recorder ngay trong tiến trình, hữu ích khi gửi bản ghi hiệu năng cho bên thứ ba.

Hiệu năng: bộ nhớ gọn hơn, GC thống nhất

  • JEP 534 – Compact Object Headers bật mặc định: header của đối tượng trên heap được thu gọn, giúp giảm bộ nhớ sử dụng cho các ứng dụng tạo nhiều đối tượng nhỏ.
  • JEP 523 – G1 là bộ thu gom rác mặc định ở mọi môi trường: trước đây, trên máy rất ít tài nguyên JVM có thể chọn Serial GC. Giờ G1 là mặc định thống nhất, giúp hành vi dễ dự đoán hơn, đặc biệt trong container nhỏ.

Ngôn ngữ và API đang hoàn thiện

  • JEP 531 – Lazy Constants (preview lần 3): hằng số được khởi tạo khi cần nhưng vẫn được JVM tối ưu như giá trị final.
  • JEP 532 – Kiểu nguyên thủy trong pattern, instanceof và switch (preview lần 5).
  • JEP 533 – Structured Concurrency (preview lần 7): quản lý nhóm tác vụ đồng thời như một đơn vị, kết hợp tốt với virtual thread.
  • JEP 537 – Vector API (incubator lần 12): vẫn chờ Project Valhalla trước khi được hoàn thiện.

Ngoài JDK, Oracle cũng giới thiệu các thành phần trong Java Verified Portfolio như Helidon 27 (đánh số phiên bản theo OpenJDK) và JavaFX 27 với pipeline đồ họa Metal trên macOS.

Vì sao điều này quan trọng?

Mật mã hậu lượng tử không còn là chủ đề học thuật. Các tổ chức tài chính, chính phủ và doanh nghiệp xử lý dữ liệu nhạy cảm dài hạn đang được khuyến nghị lên kế hoạch chuyển đổi từ sớm. Việc JDK tích hợp sẵn trao đổi khóa lai trong TLS 1.3 giúp các ứng dụng Java có thể thử nghiệm mà không cần thư viện bên ngoài. Oracle cũng cho biết sẽ đưa năng lực tương tự vào các bản LTS tương lai.

Về hiệu năng, compact object headers mặc định có thể giảm chi phí bộ nhớ cho các dịch vụ Java chạy trên Kubernetes, nơi mỗi MB RAM đều quy ra tiền.

Nên làm gì tiếp theo?

  1. Nếu đang dùng JDK 21 hoặc 25 LTS cho production, không cần vội chuyển sang 27, nhưng nên đưa JDK 27 vào CI để phát hiện sớm vấn đề tương thích.
  2. Đo lại mức dùng bộ nhớ và độ trễ GC của dịch vụ trên JDK 27, nhất là các container được cấp ít CPU, vì GC mặc định có thể thay đổi.
  3. Đội bảo mật nên thử nghiệm trao đổi khóa lai hậu lượng tử trong môi trường nội bộ và kiểm tra khả năng tương thích với load balancer, proxy.
  4. Lập trình viên có thể thử Structured Concurrency và PEM API ở chế độ preview để chuẩn bị cho lúc chúng được hoàn thiện.

Kết luận

Java 27 là một bản "chuẩn bị cho tương lai": mật mã hậu lượng tử, hiệu năng bộ nhớ tốt hơn và loạt API đang dần chín muồi. Với đa số doanh nghiệp, chiến lược hợp lý vẫn là chạy production trên LTS, đồng thời dùng các bản như JDK 27 để thử nghiệm và chuẩn bị cho bản LTS kế tiếp.

Nguồn tham khảo