Java8 và Java9

Java8 Vs Java9



Java 8 và Java 9: ​​Những cải tiến trong Java 9 mà bạn cần biết

Nhiều nhà phát triển sẽ chuyển sang Java để tạo các ứng dụng. Như chúng ta đã biết, Java cực kỳ linh hoạt, dễ sử dụng, bảo mật, đáng tin cậy và hơn hết, nó độc lập với nền tảng. Java có hơn 6,5 triệu nhà phát triển trên toàn cầu theo dõi. Vì vậy, nó là ngôn ngữ hoàn hảo để sử dụng vì tài liệu tham khảo cũng rất nhiều.

Tuy nhiên, Java đã tiếp tục phát triển và phát triển trong những năm qua. Được tạo bởi Sun Microsystems vào năm 1995 , Java đã tiếp tục chứng minh độ tin cậy của nó. Bản dựng trước của Java đã được sử dụng kể từ ngày 18 tháng 3 năm 2014, là Java SE 8. Khi nó được công bố, các nhà phê bình cho rằng đây là một tác phẩm nghệ thuật, một bản phát hành các luồng thay đổi trong API. Bây giờ có một đứa trẻ mới trong khối. Java 9 mới được đúc cuối cùng đã có mặt ở đây. Ra mắt vào ngày 21 tháng 9 năm 2017 , Java SE 9 được kỳ vọng sẽ làm thay đổi cách chúng ta làm mọi thứ và cách các nhà phát triển tạo ra ứng dụng.







Do tính linh hoạt và nhanh nhẹn đáng kinh ngạc của Java 8, các doanh nghiệp đã tạo ra các giải pháp đáng kinh ngạc cho các ngành như chăm sóc sức khỏe, fintech và các lĩnh vực chính khác. Mặt khác, Java 9 hứa hẹn sẽ xây dựng trên đó và cung cấp các chức năng hoàn toàn mới cho các nhà phát triển.



Vì vậy, hãy cùng xem có gì mới trong Java 9.



Project Jigsaw

Đây là một trong những điểm nổi bật của Java 9. Về cơ bản, ghép hình dự án là tên được đặt cho mô đun hóa của Java. Khi các mảnh ghép hình ghép lại với nhau để tạo ra một bức tranh lớn hơn, mô-đun của Java 9. Điều này có nghĩa là mã được chia thành các phần (mô-đun) do các nhiệm vụ hoặc chức năng được thực thi. Đây là một bước tiến vượt bậc vì mô-đun hóa không chỉ làm cho khả năng tái sử dụng của mã trở nên thoải mái hơn nhiều, mà việc quản lý và gỡ lỗi cũng trở nên đơn giản. Do đó, chúng tôi thấy rằng các nhà phát triển sẽ có thời gian dễ dàng hơn trong việc tạo các ứng dụng với Java 9 so với bất kỳ bản dựng trước nào khác.





Một lợi ích khác của mô-đun hóa là giờ đây các nhà phát triển có thể tạo ra các ứng dụng nhẹ, có thể mở rộng. Đặc biệt là với Internet of Things tiếp tục phát triển, chúng tôi sẽ tìm thấy nhiều ứng dụng như vậy được viết bằng Java.

JEP 222: jshell : Java Shell

Java 9 có công cụ vòng lặp đọc-đánh giá-in (REPL) mới. Sau khi trong giai đoạn phát triển của nó dưới Dự án Quyền tính năng này cuối cùng đã được phát hành cho công chúng. Tính năng mới này là một công cụ tương tác được sử dụng để kiểm tra các biểu thức, câu lệnh và khai báo được viết bằng Java. Mục tiêu chính của công cụ và API JShell là cung cấp cho nhà phát triển cơ hội thử nghiệm các tính năng được đề cập ở trên trong trạng thái shell. Đây chủ yếu là mã hóa và điều tra nhanh, theo đó các biểu thức và câu lệnh không cần phải ở bên trong một phương thức và các phương thức, không cần phải ở bên trong một lớp. Bằng cách này, nhà phát triển có thể nhanh chóng phân tích các đoạn mã và xem liệu chúng có mang lại hiệu quả mong muốn hay không.



Công cụ jshell sẽ có giao diện dòng lệnh với các tính năng sau:

  • Định nghĩa và nhập được xác định trước có thể định cấu hình.
  • Lịch sử với khả năng chỉnh sửa
  • Tự động thêm dấu chấm phẩy đầu cuối cần thiết

Cải tiến trình biên dịch

Để đảm bảo các ứng dụng chạy nhanh hơn, Java 9 đã sử dụng một công nghệ mới được gọi là biên dịch trước thời hạn (AoT). Công nghệ này mặc dù đang trong giai đoạn thử nghiệm, giúp các lớp Java có thể được biên dịch thành mã gốc ngay cả trước khi nó được khởi chạy trong máy ảo. Khả năng của điều này là vô tận. Tuy nhiên, việc sử dụng ngay lập tức công nghệ này đang cải thiện thời gian khởi động cho các ứng dụng lớn và nhỏ mà không cản trở hiệu suất cao nhất.

Nhìn lại, Java 8 sử dụng trình biên dịch Just-in-time (JIT). Các trình biên dịch này nhanh nhưng mất nhiều thời gian hơn một chút trước khi khởi động. Điều đó có thể không quan trọng đối với các chương trình hoặc ứng dụng nhỏ hơn vì không có nhiều mã để biên dịch. Tuy nhiên, đối với các ứng dụng lớn hơn, câu chuyện hoàn toàn khác. Việc khởi động một trình biên dịch đúng lúc, có nghĩa là một số phương pháp không được biên dịch, do đó làm suy yếu hiệu suất của ứng dụng.

Giai đoạn thứ hai trong triển khai biên dịch thông minh là cải thiện tính ổn định và tính di động của công cụ Javac. Nâng cao công cụ này cho phép nó được sử dụng trực tiếp trong JVM (Máy ảo Java) làm cài đặt mặc định. Ngoài ra, công cụ này đã được khái quát hóa theo cách cho phép các nhà phát triển sử dụng nó ngay cả bên ngoài môi trường JDK. Đối với các nhà phát triển, đây là một vấn đề lớn vì Java có thể được sử dụng trong các dự án lớn hơn mà có thể dễ dàng đáp ứng mà không cần lo lắng về khả năng tương thích. Một bản cập nhật quan trọng khác là khả năng tương thích ngược của trình biên dịch Javac có chức năng duy nhất là biên dịch các ứng dụng và chương trình được tạo bằng Java 9 để cũng chạy trên các phiên bản Java cũ hơn.

Hỗ trợ JavaScript tốt hơn

Khi JavaScript tiếp tục đạt được động lực và trở thành yêu thích của nhiều người, JDK 9 đã làm cho nó có thể nhúng JavaScript vào các ứng dụng Java. Tất cả điều này được thực hiện với sự trợ giúp của Dự án Tê giác có mục tiêu chính là tạo thời gian chạy JavaScript hiệu suất cao nhưng nhẹ trong Java. Tất nhiên điều này đã được phân phối khi họ cung cấp một công cụ JavaScript trong JDK phiên bản 8. Bây giờ trong phiên bản 9, có một API phân tích cú pháp có mục tiêu là thứ tự cú pháp ECMAScript của Nashorn. Những gì API này làm là cho phép phân tích mã ECMAScript bởi các khuôn khổ phía máy chủ và IDE mà không cần phải dựa vào các lớp triển khai nội bộ của Dự án Nashorn.

G1 với tư cách là người thu gom rác

Trái với suy nghĩ của nhiều người, Java không có một mà là bốn bộ thu gom rác. Các bộ thu gom rác này không được tạo ra như nhau và do đó, chọn sai có nghĩa là có vấn đề về hiệu suất trong ứng dụng. Trong Java 8, bộ thu gom rác mặc định là Bộ thu thập thông lượng / song song. Bộ thu gom rác này đã được thay thế bởi người tiền nhiệm của nó là bộ thu gom rác đầu tiên (G1). Vì bộ thu gom G1 được thiết kế để hỗ trợ các đống lớn hơn 4GB một cách hiệu quả, nó là bộ thu gom rác hoàn hảo cho cả các ứng dụng quy mô nhỏ và lớn.

Cập nhật API

Trong phiên bản mới này của bộ công cụ phát triển Java, một số cập nhật đã được thực hiện đối với các API và chúng ta sẽ thảo luận về những nội dung đáng chú ý nhất.

Đầu tiên là bản cập nhật đồng thời Java 9 có Java.util.concurrent.Flow và CompletableFuture. Nhằm giải quyết vấn đề gây áp lực trở lại. Luồng là cách triển khai của Java đối với API luồng phản ứng về cơ bản nhằm mục đích giải quyết vấn đề áp suất ngược. Áp lực ngược là sự tích tụ dữ liệu xảy ra khi tỷ lệ yêu cầu gửi đến lớn hơn khả năng xử lý của ứng dụng. Về lâu dài, đây là một vấn đề vì ứng dụng kết thúc với một bộ đệm dữ liệu chưa được xử lý. Bản cập nhật này sẽ đồng nghĩa với việc xử lý thời gian chờ, độ trễ và phân lớp tốt hơn.

Bảo mật là một phần của danh tính cốt lõi của Java. Như vậy, hỗ trợ cho HTTP 2.0 RFC là một điểm cộng rất lớn. HTTP 2.0 RFC được xây dựng dựa trên Thuật toán SPDY của Google vốn đã bắt đầu mang lại kết quả với những cải tiến về tốc độ từ 11,81% lên 47,7% so với HTTP 1.1 trước đó. API ứng dụng khách này là bản nâng cấp cho các giao thức HTTP cốt lõi và API HttpURLConnection có vấn đề, ít nhất là vì nó đã được thực hiện trước cả HTTP 1.

Bộ nhớ đệm mã luôn là một chiến lược được sử dụng để làm cho các ứng dụng nhanh hơn và mượt mà hơn trong nhiều năm. Tuy nhiên, nó không phải là không có những hạn chế của nó và điều này không được chú ý. Bản cập nhật trong Java 9 cho thấy rõ ràng JDK 9 chia các mã được lưu trong bộ nhớ cache thành các phần nhỏ hơn, do đó cải thiện hiệu suất tổng thể. JDK 9 sử dụng các trình vòng lặp đặc biệt để bỏ qua mã không phải phương thức; để phân tách mã có cấu hình, không cấu hình và không theo phương thức; và cải thiện một số điểm chuẩn cho thời gian thực hiện.

Lợi ích của Java 9

Đối với nhiều chủ doanh nghiệp, không có sự khác biệt giữa Java 8 và 9. Tuy nhiên, đối với các nhà phát triển, có một thế giới khác biệt. Đây là những lợi ích mà Java SE 9 có so với người tiền nhiệm của nó.

  • Tốc độ phát triển sẽ được tăng lên đáng kể nhờ vào hệ thống các mô-đun không chỉ dễ quản lý và gỡ lỗi hơn mà còn có thể tái sử dụng nghĩa là bạn không phải viết toàn bộ mã từ đầu.
  • Nâng cao hiệu quả tài nguyên cho các ứng dụng từ mô-đun hóa và cũng làm cho việc kéo tài nguyên trở nên đơn giản hơn vì các nhà phát triển sẽ chỉ lấy các mô-đun cần thiết thay vì toàn bộ JRE.
  • Phân tích thời gian thực các đoạn mã, chẳng hạn như điểm chuẩn vi mô được sử dụng để xem xét hiệu suất của các đoạn mã nhỏ.

Nguồn

http://openjdk.java.net/jeps/251
https://www.romexsoft.com/blog/java-8-vs-java-9/
https://blogs.oracle.com/java/features-in-java-8-and-9
https://dzone.com/articles/5-features-in-java-9-that-will-change-how-you-deve

Hướng dẫn về Eclipse Java