- vừa được xem lúc

Quên Java 11 đi, Java 17 là giành cho bạn

0 0 31

Người đăng: Hoàng Cá

Theo Viblo Asia

Giới Thiệu

Hôm này mình xin giới thiệu các tính năng mới nổi bật từ bản java 13 trở đi, giúp bạn tự tin hơn để nâng cấp lên java 17 nhé.

Text Blocks (Java 15)

Text Blocks là tính năng được phát triển từ java 13, tuy nhiên phải tới java 15 nó mới được chính thức đưa vào sử dụng. Text Blocks giúp viện sử dụng chuỗi trong java dễ dành hơn

Java old version

String demo = "Hoàng Phúc International" + "\n" + "kafka\n" + "kafka\n";

Java new version

String demo = """ Hoàng Phúc International kafka kafka """;

Để sử dụng các giá trị biến trong Text Blocks bạn có thể dùng hàm String.format, ví dụ:

 String demo = """ Some parameter: %s """.formatted("HPI");

Records

record là một kiểu mới trong java 15, giúp bạn khởi tạo nhanh object.
Mình cùng làm 1 ví dụ để thấy sự tiện lợi so với sử dụng Class nhé

Sử dụng Class, khởi tạo tương đối dài và cồng kềnh =))

public class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return age; }
}

Sử dụng Records, cú pháp rất tính gọn và không cần tới thư viện thứ 3 như lombok, biến name và age sẽ được record lưu trữ lại.

public record Person(String name, int age) {
} Person p = new Person("hpi",32);
p.name();

Sealed Classes

các Class khi được khai báo trong java sẽ không kiểm soát đường quyền thừa kế, bất cứ Class nào cũng có thể kế thừa được Class của bạn, để khắc phúc vấn đề này Sealed Classes được cho ra mắt trong java 15.

Sealed Classes kiểm soát việc kế thừa, các lớp chỉ được kế thừa lớp Sealed Classes khi Sealed Classes cấp quyền kế thừa

public abstract sealed class Person permits ClassA, ClassB { }

Khi sử dụng permits ClassA, ClassB bạn đang cấp quyền cho ClassA, ClassB được phép kế thừa từ classs Person bất kỳ class khác khi kế thừa sẽ nhận được thông báo lỗi.

Pattern Matching Type Checks

từ phiên bản java 14 trở lên, việc kiểm tra Type sẽ trở nên đơn giản hơn về mặt cú pháp, thay đổi này thường không tạo ra sự khác biệt về hiệu năng tuy nhiên giúp code bạn minh bạc hơn khá nhiều

/// OLD
if (person instanceof Employee) { Employee employee = (Employee) person;
} /// NEW
if (person instanceof Employee employee) { Date hireDate = employee.getHireDate();
}

Vector API

API Vector được phát triển lần đầu ở java 16. Ý tưởng của API này là cung cấp một phương tiện tính toán vector cuối cùng sẽ có thể hoạt động tối ưu hơn so với phương pháp tính toán vô hướng truyền thống.

int[] a = {1, 2, 3, 4};
int[] b = {5, 6, 7, 8}; var c = new int[a.length]; for (int i = 0; i < a.length; i++) { c[i] = a[i] * b[i];
}

Ví dụ về tính toán này, đối với một mảng có độ dài 4, sẽ thực thi trong 4 chu kỳ. Bây giờ, chúng ta hãy xem xét phép tính dựa trên Vector:

int[] a = {1, 2, 3, 4};
int[] b = {5, 6, 7, 8}; var vectorA = IntVector.fromArray(IntVector.SPECIES_128, a, 0);
var vectorB = IntVector.fromArray(IntVector.SPECIES_128, b, 0);
var vectorC = vectorA.mul(vectorB);
vectorC.intoArray(c, 0);

Vector giúp bạn tối ưu hơn khi bạn làm việc với mảng.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Tổng hợp các bài hướng dẫn về Design Pattern - 23 mẫu cơ bản của GoF

Link bài viết gốc: https://gpcoder.com/4164-gioi-thieu-design-patterns/. Design Patterns là gì. Design Patterns không phải là ngôn ngữ cụ thể nào cả.

0 0 277

- vừa được xem lúc

Học Spring Boot bắt đầu từ đâu?

1. Giới thiệu Spring Boot. 1.1.

0 0 257

- vừa được xem lúc

Cần chuẩn bị gì để bắt đầu học Java

Cần chuẩn bị những gì để bắt đầu lập trình Java. 1.1. Cài JDK hay JRE.

0 0 37

- vừa được xem lúc

Sử dụng ModelMapper trong Spring Boot

Bài hôm nay sẽ là cách sử dụng thư viện ModelMapper để mapping qua lại giữa các object trong Spring nhé. Trang chủ của ModelMapper đây http://modelmapper.org/, đọc rất dễ hiểu dành cho các bạn muốn tìm hiểu sâu hơn. 1.

0 0 180

- vừa được xem lúc

[Java] 1 vài tip nhỏ khi sử dụng String hoặc Collection part 1

. Hello các bạn, hôm nay mình sẽ chia sẻ về mẹo check String null hay full space một cách tiện lợi. Mình sẽ sử dụng thư viện Lớp StringUtils download file jar để import vào thư viện tại (link).

0 0 55

- vừa được xem lúc

Deep Learning với Java - Tại sao không?

Muốn tìm hiểu về Machine Learning / Deep Learning nhưng với background là Java thì sẽ như thế nào và bắt đầu từ đâu? Để tìm được câu trả lời, hãy đọc bài viết này - có thể kỹ năng Java vốn có sẽ giúp bạn có những chuyến phiêu lưu thú vị. DJL là tên viết tắt của Deep Java Library - một thư viện mã ng

0 0 124