Cấp bậc tác giả:

TRAINING

Tóm tắt về JDK 8 đến JDK 21

Được viết bởi webmaster ngày 11/03/2024 lúc 10:46 AM
Trải qua hàng loạt các phiên bản, Java Development Kit (JDK) từ JDK 8 đến JDK 21 đã chứng kiến sự tiến bộ đáng kể trong ngôn ngữ lập trình Java và môi trường phát triển của nó.
  • 0
  • 2198
Tải tệp tin: Click ở đây

Tóm tắt về JDK 8 đến JDK 21

Từ JDK 8 đến JDK 21, Java đã trải qua nhiều cải tiến đáng kể, bổ sung các tính năng mới và cải thiện hiệu suất. Dưới đây là tóm tắt ngắn gọn về các phiên bản chính từ JDK 8 đến JDK 21:

1. JDK 8 (Tháng 3, 2014)
  • Lambda Expressions: Cải thiện cú pháp và tính linh hoạt trong việc xử lý dữ liệu. Giúp viết code ngắn gọn, đặc biệt là khi sử dụng các API như Collections.
List<String> names = Arrays.asList("John", "Jane", "Doe");
Collections.sort(names, (String a, String b) -> b.compareTo(a));
  • Stream API: Hỗ trợ xử lý dữ liệu một cách ngắn gọn và hiệu quả.
List<String> filtered = names.stream()
                             .filter(name -> name.startsWith("J"))
                             .collect(Collectors.toList());
  • Date and Time API mới: Cải thiện việc xử lý ngày và giờ. Gói java.time giới thiệu một API linh hoạt hơn để xử lý ngày và giờ. Giải quyết các vấn đề với các lớp java.util.Date và java.util.Calendar cũ.
image.png
  • Default Methods: Cho phép thêm các phương thức mới vào interfaces mà không làm ảnh hưởng đến lớp thực thi. Một interface có thể chứa phương thức mặc định, là phương thức có thể được triển khai bởi các lớp triển khai của interface đó. Các lớp triển khai có thể sử dụng phương thức mặc định này mà không cần phải triển khai lại nó.
image.png
2. JDK 9 (Tháng 9, 2017)
  • Module System (Project Jigsaw): Hỗ trợ modularization của code để cải thiện bảo mật, hiệu suất và khả năng duy trì. Cung cấp khả năng đóng gói code và tài nguyên vào các module riêng biệt.
module my.module {
    requires java.base;
    exports my.module.name;
}
  • JShell: Môi trường shell tương tác cho Java.
  • Private Interface Methods: Hỗ trợ các phương thức riêng tư trong interfaces.
image.png
3. JDK 10 (Tháng 3, 2018)
  • Local-Variable Type Inference: Cải thiện cú pháp với từ khóa var cho biến cục bộ, giảm thiểu sự cần thiết phải rõ ràng khai báo kiểu dữ liệu. 
var list = new ArrayList<String>(); // Compiler sẽ suy luận list là ArrayList<String>
  • Time-Based Release Versioning: Giới thiệu mô hình phát hành dựa trên thời gian với các bản cập nhật tính năng hàng quý.
4. JDK 11 (Tháng 9, 2018)
  • HTTP Client API: Thay thế cho các lớp HttpURLConnection cũ, hỗ trợ HTTP/2.
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
      .uri(URI.create("http://example.com"))
      .build();
HttpResponse<String> response = client.send(request, BodyHandlers.ofString());
  • Epsilon: Một bộ thu gom rác (GC) không làm gì, hữu ích cho việc phân tích và hiệu năng.
  • String Methods mới: Thêm các phương thức mới cho lớp String.
  • Nested Based Access Control: Cải thiện việc truy cập lớp lồng nhau.
5. JDK 12 đến JDK 16
Giới thiệu các cải tiến nhỏ và tính năng tiếp tục phát triển như:
  • Switch Expressions (JDK 12 và 13): Cải thiện cú pháp của switch để viết code gọn gàng hơn.
String result = switch (day) {
    case MONDAY, FRIDAY, SUNDAY -> "Six";
    case TUESDAY                -> "Seven";
    default                     -> "Unknown";
};

  • Text Blocks (JDK 13): Cho phép khai báo chuỗi nhiều dòng một cách dễ dàng, hỗ trợ các ký tự như dấu ngoặc kép, xuống dòng mà không cần escape.
String html = """
              <html>
                  <body>
                      <p>Hello, World</p>
                  </body>
              </html>
              """;
  • Records (JDK 14): Cung cấp một cách để mô hình hóa dữ liệu bất biến mà không cần viết nhiều boilerplate code.
record Point(int x, int y) {}
  • Pattern Matching for instanceof (JDK 14 và 16)
if (obj instanceof String s) {
    // can use s directly here
}

  • Sealed Classes (JDK 15): Tính năng này giờ đây không còn ở dạng Preview và cho phép ràng buộc chặt chẽ hơn trong việc kế thừa lớp.
sealed class Shape permits Circle, Square {
}

final class Circle extends Shape {
}

final class Square extends Shape {
}

6. JDK 17 (Tháng 9, 2021)
  • Sealed Classes: Chính thức giới thiệu, cung cấp khả năng kiểm soát kế thừa một cách chặt chẽ hơn.
  • Pattern Matching for switch (Preview): Cải thiện switch expressions và statements.
  • Foreign Function & Memory API (Incubator): Cải thiện việc tương tác với code bên ngoài Java và quản lý bộ nhớ.
7. JDK 18 đến JDK 21
Các bản phát hành này tiếp tục giới thiệu các cải tiến và tính năng mới, như cải thiện Pattern Matching, Project Loom cho lightweight concurrency (trong dạng preview hoặc incubator), và các cải thiện cho Vector API.
image.png
Mỗi phiên bản JDK mang lại những cải tiến và tính năng mới nhằm cải thiện hiệu suất, khả năng bảo mật, và cung cấp các công cụ mới cho các nhà phát triển. Oracle hiện đang theo đuổi mô hình phát hành 6 tháng một lần, giúp đảm bảo rằng Java tiếp tục phát triển và thích nghi với nhu cầu thay đổi của ngành công nghiệp phần mềm.

Nguồn bài viết: DOTNET.VN

BÌNH LUẬN BÀI VIẾT

Bài viết mới nhất

LIKE BOX

Bài viết được xem nhiều nhất

HỌC HTML