5 tính năng vô cùng thú vị của Java 9
Java 9 là một bước ngoặt trong vòng đời phát hành của Java. Ở bài viết này, chúng ta sẽ thảo luận về các tính năng mới của nhà phát triển trong Java 9. Từ quan điểm hoạt động, có những thay đổi và cải tiến trong hiệu suất và bảo mật. Sau khi phát triển Java 9 trong nhiều tháng tại ValueCoders, Bizfly Cloud sẽ chia sẻ 5 tính năng thú vị nhất trong Java 9 để khuyến khích bạn áp dụng nó.
1. Mô-đun
Hãy bắt đầu với tính năng quan trọng nhất của Java 9 – Java Platform Module System (Hệ thống Mô-đun nền tảng Java).
Vấn đề lớn nhất với Java là runtime library. Hai mươi năm phát triển trên một nền tảng lớn đã tạo ra nhiều lộn xộn với các classes chồng chéo nhau. Thậm chí, không có cách tối ưu nào để triển khai các classes trong JDK. Điều đó dẫn đến việc phải dùng tới các thư viện bên ngoài, phụ thuộc vào các chi tiết bên trong, khiến cho việc phát triển nền tảng Java bị cản trở.
Với Java 9, bản thân JDK chính là mô-đun và đi kèm với 90 mô-đun riêng biệt khác. Chỉ các package được xuất ra một cách rõ ràng từ mô-đun mới có thể truy cập được tới các mô-đun khác. Cuối cùng, các classes thực hiện nội bộ giờ có thể đóng gói thông tin của người dùng bằng các trường thông tin phụ, để thực hiện chức năng truyền tin trên mạng. Ngoài ra, các mô-đun có thể thể hiện sự phụ thuộc rõ ràng vào các mô-đun khác. Sự phụ thuộc luôn được kiểm tra bởi hệ thống mô-đun cả trong quá trình biên dịch và thực hiện.
Các mô-đun cũng có thể được sử dụng để mô đun hóa các ứng dụng, không chỉ là JDK. Thay vì sử dụng các đường dẫn (classpath) mong manh, bây giờ bạn có thể tạo ra các mô-đun riêng của mình với các package và thuộc tính rõ ràng.
Các mô-đun cung cấp một đường dẫn đến các ứng dụng có cấu trúc rõ ràng và đáng tin cậy hơn. Tuy nhiên, hệ thống mô-đun mới này sẽ không thay đổi Java trong một sớm một chiều. Các mô-đun ảnh hưởng đến việc thiết kế ứng dụng của bạn và tự biểu hiện trong các giai đoạn phát triển: phát triển, biên dịch, đóng gói và thực hiện. Sẽ mất một thời gian trước khi hệ thống mô-đun được áp dụng rộng rãi. May mắn thay, cộng đồng chào đón sự thay đổi này rất tích cực.
2. Năng suất
Ngoài hệ thống mô-đun, Java 9 còn có các tính năng nhỏ để cải thiện năng suất của các nhà phát triển. Ví dụ, các phương pháp collection factory cho phép bạn tạo các collection bất biến với các phần tử được xác định trước trong một câu lệnh. Nhờ đó không cần phải giải quyết thêm nhiều phiền toái để tạo các collection nhỏ, được xác định trước.
Một tính năng giúp tăng tốc năng suất chính khác là JShell, một mã Read-Eval-Print-Loop cho Java. Thay vì biên dịch và chạy các classes nhỏ để kiểm tra code, bạn có thể tương tác nhập và đánh giá các đoạn mã Java trong JShell với khả năng phản hồi tức thì. JShell đã được tích hợp với các IDE như IntelliJ IDEA, cho phép bạn mở một môi trường tương tác với quyền truy cập vào mã ứng dụng của bạn.
3. Hiệu suất
Chạy một phiên bản Java mới nghĩa là bạn sẽ nhận được những cải tiến về hiệu suất mà không cần thay đổi code. Java 9 cũng không ngoại lệ. Một ví dụ về sự cải tiến như vậy là tính năng Compact Strings. Bất kỳ chuỗi nào cũng có thể được thấy rõ chỉ với bộ ký tự ASCII, lưu trữ một byte cho mỗi ký tự. Các chuỗi có các ký tự nằm ngoài phạm vi ASCII sẽ lấy hai byte cho mỗi ký tự. Hầu hết các ứng dụng đều có một lượng tốt các đối tượng String trong công việc. Nếu chúng là các chuỗi đơn giản thì điều này sẽ giúp giảm lượng bộ nhớ được dùng.
Một thay đổi quan trọng khác trong Java 9 là di chuyển đến Garbage Collector G1 (Garbage First) như bộ garbage collector theo mặc định. Được thiết kế để sử dụng với quy mô lớn, nó cung cấp các mục tiêu thời gian nghỉ có thể điều chỉnh và thực hiện bộ sưu tập gia tăng. Tác động của thay đổi này phụ thuộc vào đặc điểm ứng dụng của bạn.
Nói chung, bạn sẽ nhận được độ trễ thấp hơn khi thực hiện code. Đổi lại, G1GC sử dụng tài nguyên CPU nhiều hơn để đạt được điều này. Dù sao, điều quan trọng là phải kiểm tra hành vi của garbage collector trên các ứng dụng cụ thể khi chuyển sang Java 9. Trong một số trường hợp, các mẫu phân bổ không phù hợp với cách tiếp cận G1GC và việc chuyển sang GC khác (hoặc G1GC) là cần thiết.
4. Bảo mật
Những tính năng năng suất của các nhà phát triển không phải là lý do duy nhất để áp dụng Java 9. Bản thân nền tảng đã được cập nhật nhiều tính năng mới để tăng cường bảo mật. Hầu hết các cải tiến về bảo mật trong Java 9 liên quan đến mạng lưới bảo mật. Các phiên bản mới nhất của (D) TLS hiện được hỗ trợ cho các kết nối HTTPS an toàn.
Các tăng cường bảo mật khác bao gồm khả năng lọc dữ liệu tuần tự. Việc sắp xếp theo thứ tự vốn là điều mà Java luôn bỏ qua, dẫn đến nhiều cuộc tấn công an ninh trong những năm gần đây. Hiện giờ, bạn có thể lọc các luồng dữ liệu tuần tự giúp giảm thiểu mức độ tấn công của Java serialization.
5. Chu kỳ phát hành
Ở phần trên, chúng ta chỉ tập trung vào các tính năng của Java 9. Nhưng có một lý do khác chứng minh việc Java 9 là một phiên bản quan trọng: Nó đánh dấu sự kết thúc kỷ nguyên của các phiên bản Java chỉ tập trung vào "tính năng". Trong quá khứ, một số tính năng quan trọng đã được chọn và khi sẵn sàng, một phiên bản mới của Java mới được tạo ra. Trên thực tế, điều này dẫn đến khoảng cách ít nhất ba năm giữa các phiên bản chính. Điều này vốn không thể chấp nhận được đối với thời đại công nghệ ngày nay. Do đó, Oracle và OpenJDK đang chuyển sang việc phát hành các phiên bản dựa trên mốc thời gian.
Bây giờ, cứ 6 tháng, một phiên bản mới của Java sẽ được phát hành. Nó sẽ chứa tất cả các tính năng sẵn có tại thời điểm đó. Giữa những bản phát hành 6 tháng này, hãng cũng sẽ tung ra bản cập nhật với các bản sửa lỗi quan trọng nếu cần. Lịch trình phát hành mới này mang một số ý nghĩa quan trọng. Các phiên bản Java trở nên phổ biến và có thể dự đoán được. Hiện tại Java sẽ tung ra các bản cập nhật lớn vào tháng 3 và tháng 9 hàng năm. Theo kế hoạch, phiên bản mới sẽ được phát hành 6 tháng một lần, có nghĩa là phiên bản tiếp theo vào tháng 3 năm 2018 sẽ là Java 10. Tuy nhiên, công ty vẫn chưa đưa ra thông tin chính thức xác nhận mốc thời điểm trên.
Tuy vậy, việc update thường xuyên Java cũng không phải là tin vui với nhiều công ty. Do đó, sẽ có các phiên bản dài hạn (LTSs) được chỉ định ba năm một lần. Phiên bản đầu tiên của LTS sẽ được phát hành vào tháng 9 năm 2018. Điều này cũng có nghĩa là Java 9 sẽ không có trong các phiên bản dài hạn được hỗ trợ.
6. Lời kết
Những chiến lược mới này làm cho Java trở nên linh hoạt hơn bao giờ hết. Các tính năng chính sẽ được chia thành các bước nhỏ và cập nhật 6 tháng một lần. Như vậy ngay cả sau hơn 20 năm, Java vẫn tiếp tục phát triển với tốc độ sôi động và nhanh chóng.
Theo: quantrimang.com