Java 25 / JDK 25 chính thức ra mắt
(openjdk.org)- Java 25 và bản triển khai tham chiếu JDK 25 đã chính thức được phát hành
- Phiên bản lần này bao gồm 18 JEP (Java Enhancement Proposal) mới
- Các thay đổi đáng chú ý gồm loại bỏ cổng x86 32-bit, Scoped Values, Structured Concurrency, cải tiến Primitive Types
Java 25 / JDK 25: phát hành chính thức
- JDK 25, tức bản triển khai tham chiếu của Java 25, đã chính thức được phát hành ở phiên bản sẵn sàng cho production
- Vào ngày 15 tháng 8 năm 2025, bản phát hành thử ứng viên thứ hai là build 36 đã được cung cấp, và kể từ đó không có báo cáo lỗi nghiêm trọng (P1) nào.
- build 36 là phiên bản GA (General Availability) cuối cùng, có thể sử dụng trong môi trường vận hành
- Bản dựng OpenJDK theo giấy phép GPL hiện đang được Oracle cung cấp chính thức, và các bản dựng từ nhiều nhà cung cấp khác cũng sẽ sớm được phát hành
Liên kết tải xuống OpenJDK chính thức
Các tính năng và cải tiến chính
Bản phát hành này bao gồm 18 JEP (Java Enhancement Proposal)
- 470: Mã hóa đối tượng mã hóa dựa trên PEM (xem trước)
- 502: Stable Values (xem trước)
- 503: Loại bỏ cổng x86 32-bit
- 505: Structured Concurrency (bản xem trước thứ 5)
- 506: Scoped Values
- 507: Hỗ trợ Primitive Types trong pattern, instanceof và switch (bản xem trước thứ 3)
- 508: Vector API (phiên bản incubator thứ 10)
- 509: Lập hồ sơ thời gian CPU của JFR (tính năng thử nghiệm)
- 510: Key Derivation Function API
- 511: Khai báo Module Import
- 512: Compact Source Files và phương thức main của instance
- 513: Flexible Constructor Bodies
- 514: Tối ưu hóa dòng lệnh Ahead-of-Time
- 515: Lập hồ sơ phương thức Ahead-of-Time
- 518: Lấy mẫu phối hợp JFR
- 519: Compact Object Headers
- 520: Định thời và theo dõi phương thức JFR
- 521: Generational Shenandoah
Ngoài các JEP ở trên, bản phát hành này còn bao gồm hàng trăm cải tiến tính năng nhỏ và hàng nghìn bản sửa lỗi
Thông tin phát hành chi tiết hơn và nội dung cụ thể của từng JEP có thể xem tại
Trang dự án OpenJDK JDK 25
3 bình luận
Lại là màn đó từ năm ngoái, chưa chết mà lại mò tới, eo ôi hò dô ta vào cuộc.. Sao cứ là mày xuất hiện hoài vậy?
Đây là tính năng đã được đưa vào từ JDK 24, nhưng vì Java có xu hướng chủ yếu chỉ dùng các bản LTS nên điểm đáng chú ý là với JEP 491: Synchronize Virtual Threads without Pinning, hiện tượng pinning của virtual thread khi dùng từ khóa
synchronizedđã không còn nữa.Trước đây benchmark virtual thread trong thực tế đôi khi chậm hơn, và trong đa số trường hợp nguyên nhân là do pinning.
Ý kiến trên Hacker News
supertrong constructor. Đây là điều tôi luôn thấy trái với trực giác từ rất lâu rồi.staticđể xử lý bướcvalidatecho tham số củasuper, thì trên thực tế nó vẫn được gọi trướcsuper, nên compiler cũng không phàn nàn gì.import *giúp viết code dễ hơn, nhưng lại khiến việc đọc khó hơn nhiều, đặc biệt với những lập trình viên chưa quen ngôn ngữ hoặc codebase đó. C# và Nim cũng theo kiểu đó, và tôi thấy gần như không thể đọc nổi nếu không có IDE. Vì vậy tôi thích kiểu bí danh ngắn như của Python hơn (import torch.nn.functional as F).NullPointerExceptionvẫn phổ biến). Nếu không thích Kotlin thì C# cũng tốt. Dù sao Java vẫn hoàn toàn dùng được.