Java 9 - Các Tính Năng Mới: Hướng Dẫn Toàn Diện Cho Người Mới Bắt Đầu

Xin chào, những người học lập trình Java có tham vọng! Tôi rất vui mừng được làm hướng dẫn viên của bạn trong hành trình thú vị này qua các tính năng mới của Java 9. Là một người đã dạy Java trong nhiều năm, tôi có thể đảm bảo với bạn rằng phiên bản này mang lại một số cải tiến thay đổi cuộc chơi. Hãy cùng nhau lặn sâu và khám phá những tính năng này!

Java 9 - New Features

Giới Thiệu Về Java 9

Trước khi chúng ta đi sâu vào các tính năng mới, hãy dành một chút thời gian để hiểu Java 9 là gì. Được phát hành vào tháng 9 năm 2017, Java 9 mang lại nhiều cải thiện giúp việc lập trình trở nên hiệu quả và thú vị hơn. Nó giống như được nhận một bộ công cụ mới sáng bóng với những phụ kiện tuyệt vời mà bạn không biết mình cần!

Hệ Thống Mô-Đun

Một trong những bổ sung quan trọng nhất trong Java 9 là Hệ Thống Mô-Đun, còn được gọi là Dự Án Jigsaw. Bây giờ, tôi biết bạn đang nghĩ gì - "Mô-Đun? Điều đó có vẻ phức tạp!" Nhưng đừng lo lắng, nó thực sự là một cách tốt để tổ chức mã của bạn.

Mô-Đun Là Gì?

Hãy tưởng tượng một mô-đun như một容器 chứa mã của bạn. Nó giống như một tủ quần áo được tổ chức tốt nơi mọi thứ đều có vị trí của riêng mình. Mỗi mô-đun bao gồm:

  1. Một tên
  2. Một bộ các gói
  3. Danh sách những gì nó cần (phụ thuộc)
  4. Danh sách những gì nó cung cấp cho các mô-đun khác

Hãy xem một ví dụ đơn giản:

module com.myapp {
requires java.sql;
exports com.myapp.api;
}

Trong ví dụ này, chúng ta đang tạo một mô-đun có tên com.myapp. Nó yêu cầu mô-đun java.sql (vì nó cần một số chức năng cơ sở dữ liệu) và xuất gói com.myapp.api (làm cho nó khả dụng cho các mô-đun khác).

REPL (Vòng Lặp Đọc-Giá Trị-In)

Java 9 đã giới thiệu JShell, một công cụ REPL. Bây giờ, bạn có thể tự hỏi, "REPL là gì?" Hãy tưởng tượng một cuộc trò chuyện với Java nơi bạn có thể gõ vào các đoạn mã và nhận phản hồi ngay lập tức. Đó chính là REPL!

Để bắt đầu JShell, chỉ cần gõ jshell trong command prompt. Hãy thử một ví dụ đơn giản:

jshell> System.out.println("Hello, Java 9!")
Hello, Java 9!

Đó có phải là cool không? Bạn vừa chạy mã Java mà không cần tạo một chương trình đầy đủ! Điều này rất tuyệt vời cho việc kiểm tra ý tưởng hoặc học các khái niệm mới.

Cải Thiện JavaDocs

Tài liệu hóa có thể không听起来 thú vị, nhưng hãy tin tôi, tài liệu hóa tốt là người bạn tốt nhất của một nhà phát triển. Java 9 đã làm cho JavaDocs tốt hơn với sự bổ sung của tính năng tìm kiếm và hỗ trợ HTML5.

Phương Thức Nhà Máy Cho Collection

Việc tạo ra các bộ sưu tập trong Java vừa trở nên dễ dàng hơn! Java 9 đã giới thiệu các phương thức nhà máy cho các bộ sưu tập. Hãy xem chúng ta tạo một danh sách không thể thay đổi như thế nào:

List<String> fruits = List.of("Apple", "Banana", "Cherry");
System.out.println(fruits);

Kết quả:

[Apple, Banana, Cherry]

Đây có phải là干净 hơn so với cách cũ? Không cần phải tạo ArrayList và thêm các phần tử một cách riêng lẻ!

Phương Thức Riêng Trong Interface

Java 9 cho phép bạn có các phương thức riêng trong các interface. Điều này có thể nghe có vẻ trừu tượng, hãy cùng xem một ví dụ:

public interface MyInterface {
private static void privateMethod() {
System.out.println("This is a private method");
}

default void publicMethod() {
privateMethod();
System.out.println("This is a public method");
}
}

Trong ví dụ này, privateMethod() chỉ có thể được sử dụng trong interface. Nó giống như một trợ lý bí mật mà chỉ interface biết về!

Cải Thiện API Stream

API Stream, được giới thiệu trong Java 8, đã trở nên tốt hơn trong Java 9. Một trong những bổ sung tuyệt vời là phương thức takeWhile(). Hãy xem nó trong hành động:

List<Integer> numbers = List.of(2, 4, 6, 8, 9, 10, 12);
List<Integer> evenNumbers = numbers.stream()
.takeWhile(n -> n % 2 == 0)
.collect(Collectors.toList());
System.out.println(evenNumbers);

Kết quả:

[2, 4, 6, 8]

Mã này lấy các số từ danh sách trong khi chúng là số chẵn. Khi gặp số lẻ (9), nó dừng lại. Rất tuyệt vời phải không?

Cải Thiện Try-With-Resources

Java 7 đã giới thiệu try-with-resources, và Java 9 đã làm cho nó tốt hơn. Bây giờ, bạn có thể sử dụng các biến final hoặc effectively final trong các câu lệnh try-with-resources. Dưới đây là một ví dụ:

BufferedReader reader = new BufferedReader(new FileReader("file.txt"));
try (reader) {
// Sử dụng reader
} catch (IOException e) {
e.printStackTrace();
}

Điều này làm cho mã của bạn sạch sẽ và dễ đọc hơn. Nó giống như dọn dẹp phòng của bạn - mọi thứ chỉ cảm thấy tốt hơn!

Kết Luận

Chúng ta chỉ mới chạm vào bề mặt của những gì Java 9 có thể mang lại. Còn nhiều tính năng khác như cải tiến API Process, scheme phiên bản mới và khách HTTP/2. Khi bạn tiếp tục hành trình Java của mình, bạn sẽ khám phá ra làm thế nào những tính năng này làm cho cuộc sống lập trình của bạn dễ dàng và thú vị hơn.

Nhớ rằng, cách tốt nhất để học là làm. Hãy khởi động IDE của bạn, mở JShell, và thử nghiệm với những tính năng mới này. Đừng sợ mắc lỗi - đó là cách chúng ta học và phát triển như những nhà phát triển.

Chúc mừng lập trình, những chuyên gia Java tương lai! ??‍??‍?

Credits: Image by storyset