NHỮNG ĐIỀU BẠN CẦN BIẾT VỀ JAVA 9

10-03-2018 10:31

Java 9 là một bước ngoạt đối với chính bản thân Java.Và trong bài “Những điều bạn cần biết về Java 9” này chúng ta sẽ cùng thảo luận về các tính năng mới của Java 9. Từ quan điểm hoạt động, những thay đổi và cải tiến trong hiệu suất và bảo mật.\

 

Mô đun (Modularity)

Chúng ta sẽ bắt đầu từ tính năng quan trọng nhất của Java 9 – Java Platform Module System. Runtime library là vấn đề lớn nhất với Java. Hai mươi năm phát triển trên một nền tảng lớn đã tạo ra nhiều đống lộn xộn với các classes chồng chéo vào nhau. Thậm chí, không có cách nào tối ưu để triển khai các classes trong JDK. Vì thế đã dẫn đến việc phải dùng tới các thư viện phụ bên ngoài, khiến cho việc phát triển của nền tảng Java bị cản trở rất nhiều.

Với Java 9, JDK chính là mô đun cũng như là đ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 được truy cập từ các mô – đun khác. Các classes thực hiện nội bộ giờ có thể được thực sự đóng gói. Ngoài ra, các mô đun có thể express các dependencies vào các mô đun khác. Những dependencies luôn được kiểm tra bởi các hệ thống mô đun trong quá trình compile và thực hiện.

Các module có thể được sử dụng để mô đun hóa các ứng dụng. Thay vì sử dụng các đường dẫn (classpath) mong manh, thì giờ bạn có thể tạo cho mình những mô đun riêng.

Các mô đun cung cấp đường dẫn đến các ứng dụng có cấu trúc rõ ràng và đáng tin cậy hơn. Nhưng hệ thống mô đun này sẽ không thay đổi Java trong một sớm một chiều. Phải 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 là cộng đồng đã chào đón sự thay đổi tích cực này.

Năng suất

Ngoài ra, Java 9 còn có cá tính năng giúp cải thiện hiệu suất. Các phương pháp collection factory là một ví dụ. Nó 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ớ đó mà không cần phải giải quyết thêm những phiền toái để tạo các collection nhỏ, được xác định trước.

Một tính năng có thể tăng năng suất chính khác là Jshell, một mã Read-Eval-Print-Loop cho Java. Thay vì chạy các classes nhỏ và compile để kiểm tra code thì 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 tích hợp với các IDE như IntelliJ IDEA, cho phép bạn mở môi trường tương tác với quyền truy cập vào các mã ứng dụng của bạn.

Hiệu suất

Khi chạy phiên bản Java mới có nghĩa bạn sẽ nhận được 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ó thể được thấy rõ đầy đủ chỉ với bộ ký tự ASCII sẽ được lưu trữ với chỉ 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ự. Nếu chúng là các chuỗi đơn giản sẽ giúp làm giảm lượng bộ nhớ được dùng.

Một thay đổi quan trọng khác trong Java 9 là việc để Garbage Collector G1 ở chế độ mặc định. Được thiết kế để sử dụng với qui mô lớn, bạn sẽ nhận được độ trễ thấp hơn khi code được thực hiện. Đổi lại, G1GC dùng tài nguyên CPU nhiều hơn để đạt được điều này.

Bảo mật

Bản thân nền tảng đã có rất nhiều tính năng mới được cập nhật để tăng cường bảo mật. Các cải tiến về bảo mật trong Java 9 đã số liên quan đến networking. 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. Giờ đây, 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.

Chu kỳ phát hành

Hiện nay, các tính năng của Java 9 được mọi người tập trung hơn. Nhưng có lý do khác để chứng minh việc Java 9 là một phiên bản quan trọng: Java 9 đánh dấu sự kết thúc của 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, khi đã sẵn sàng, một phiên bản mới của Java mới được tạo ra. Thực tế, điều này đã dẫn đến khoảng cách về thời gian giữa các phiên bản chính. Điều này vốn là không thể chấp nhận được đối với thời đại này. 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ứ mỗi 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 sàng tại thời điểm đó. Giữa những bản phát hành 6 tháng này, hã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 có một số ý nghĩa. 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. 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 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ợ.

Lập trình ứng dụng di động Android

Khóa học Lập trình Website với ASP.Net

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 mỗi 6 tháng một lần. Như vậy là 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.

Ban Truyền thông ITPlus Academy

 

Bài viết cùng chủ đề