10+ tính năng hay trong lập trình java từ phiên bản jdk 11 đến 21

Trong bài viết này, Stanford sẽ chia sẻ cho các bạn đang học java hoặc làm việc với lập trình java những tính năng thú vị, hữu ích trong java từ phiên bản jdk 11 đến 21.

Java luôn có những tính năng mới bổ sung trên các phiên bản mới jdk nhằm giúp các lập trình viên java lập trình xử lý công việc ngày càng hiệu quả.


Java 11 mang đến nhiều tính năng mới và cải tiến đáng chú ý. Dưới đây là một số đặc điểm nổi bật cùng với ví dụ cụ thể:

1. String API Enhancements

Java 11 bổ sung nhiều phương thức mới cho lớp String, giúp lập trình viên làm việc với chuỗi dễ dàng hơn.

String::repeat:

String repeated = "Hello".repeat(3); // Kết quả: "HelloHelloHello"
String::isBlank:

boolean isBlank = "   ".isBlank(); // Kết quả: true
String::lines:
String strThongTin = "Stanford\nDạy lập trình\nWebsite: stanford.com.vn";    
List<String> lstData = strThongTin.lines().collect(Collectors.toList()); //Kết quả: ["Stanford", "Dạy lập trình", "Website: stanford.com.vn"]

2. Local-Variable Syntax for Lambda Parameters

Java 11 cho phép sử dụng từ khóa var cho các tham số của biểu thức lambda, giúp mã nguồn ngắn gọn và dễ đọc hơn.

List<Integer> numbers = List.of(1, 2, 3, 4, 5);
numbers.forEach((var number) -> System.out.println(number));

3. New File Methods

Java 11 bổ sung các phương thức mới trong gói java.nio.file để làm việc với tệp và thư mục.

Files::readString:

Path path = Paths.get("example.txt");
String content = Files.readString(path);
Files::writeString:
Path path = Paths.get("example.txt");
Files.writeString(path, "Hello, Java 11!");

4. HTTP Client

Java 11 giới thiệu HTTP Client API mới, hỗ trợ HTTP/2 và WebSocket.

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://stanford.com.vn"))
    .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());

Java 13 mang đến một số tính năng mới và cải tiến đáng chú ý. Dưới đây là một số đặc điểm nổi bật cùng với ví dụ cụ thể:

5. Switch Expressions (Second Preview)

Switch expressions cho phép sử dụng switch như một biểu thức, giúp mã nguồn ngắn gọn và dễ đọc hơn.

int numLetters = switch (day) {
    case MONDAY, FRIDAY, SUNDAY -> 6;
    case TUESDAY -> 7;
    case THURSDAY, SATURDAY -> 8;
    case WEDNESDAY -> 9;
    default -> throw new IllegalStateException("Unexpected value: " + day);
};

6. Text Blocks (Preview)

Text blocks cho phép tạo chuỗi nhiều dòng một cách dễ dàng và trực quan hơn.

String textBlock = """
    This is a text block.
    It spans multiple lines.
    """;

7. New Stream Methods (JEP 361)

Java 16 bổ sung các phương thức mới cho lớp Stream, như toList().

List<String> list = Stream.of("a", "b", "c").toList();

8. Simple Web Server (JEP 408)

Java 18 giới thiệu một máy chủ web đơn giản, giúp các nhà phát triển dễ dàng chạy và kiểm thử ứng dụng web mà không cần thiết lập máy chủ phức tạp.

HttpServer server = HttpServer.create(new InetSocketAddress(8000), 0);
server.createContext("/hello", exchange -> {
    String response = "Hello, World!";
    exchange.sendResponseHeaders(200, response.getBytes().length);
    OutputStream os = exchange.getResponseBody();
    os.write(response.getBytes());
    os.close();
});
server.start();
System.out.println("Server started on port 8000");

9. Record Patterns (JEP 440)

Records cung cấp một cách ngắn gọn để định nghĩa các lớp chỉ chứa dữ liệu. Record patterns cho phép giải cấu trúc các record trong các biểu thức instanceof hoặc switch.

record Point(int x, int y) {}
Object obj = new Point(10, 20);
if (obj instanceof Point(int x, int y)) {
    System.out.println("Coordinates: (" + x + ", " + y + ")");
}

10. Sequenced Collections (JEP 431)

Sequenced collections cung cấp các phương thức để truy cập các phần tử theo thứ tự chèn.
SequencedCollection<String> sequencedCollection = new SequencedHashSet<>();
sequencedCollection.add("A");
sequencedCollection.add("B");
sequencedCollection.add("C");
System.out.println(sequencedCollection); // Kết quả: [A, B, C]

11. Scoped Values (JEP 446)

Scoped values là một giải pháp thay thế hiện đại cho các biến thread-local, giúp lưu trữ giá trị trong một khoảng thời gian giới hạn và chỉ có luồng đã ghi giá trị mới có thể đọc được.

ScopedValue<String> userId = ScopedValue.newInstance();
ScopedValue.where(userId, "user123", () -> {
    System.out.println("User ID: " + userId.get());
});

Những tính năng này giúp Java trở nên mạnh mẽ và linh hoạt hơn, hỗ trợ tốt hơn cho các nhà phát triển. Hy vọng qua bài viết này, Stanford đã chia sẻ cho các bạn những tính năng mới hữu ích trong các phiên bản của java để giúp bạn lập trình java hiệu quả. Chúc các bạn học tập tốt !

Bạn có thể bắt đầu ngay con đường chinh phục của bạn để trở thành lập trình viên java chuyên nghiệp trong tương lai bằng việc đăng ký tham gia khoá lập trình java tại đây: http://bit.ly/2SLPYFF. Hoặc gọi ngay cho Stanford theo hotline: 0963.723.236 - 0866.586.366 để được gọi lại tư vấn trực tiếp nhé.

==========🎬 🎬 🎬==========
☎️STANFORD – ĐÀO TẠO VÀ PHÁT TRIỂN CÔNG NGHỆ
Hotline: 0963 723 236 - 0866 586 366
Website: https://stanford.com.vn
Facebook: https://www.facebook.com/Stanford.com.vn
Youtube: http://bit.ly/2TkKT7I

Tags: tính năng java 11, java 17, java 21