Tech Talk

Sự khác biệt giữa phương thức valueOf và parseInt trong Java

Cả hai phương thức valueOf và parseInt đều được sử dụng để chuyển đổi String thành Integer trong Java, nhưng giữa chúng...

Written by AnonyHome
· 1 min read >
Java

Cả hai phương thức valueOf và parseInt đều được sử dụng để chuyển đổi String thành Integer trong Java, nhưng giữa chúng vẫn có sự khác biệt. Nếu bạn nhìn vào đoạn mã của phương thức valueOf() , bạn sẽ thấy rằng bên trong nó gọi phương thức parseInt() để chuyển đổi String thành Integer. Một sự khác biệt khác giữa phương thức parseInt() và valueOf() là kiểu trả về. ValueOf() của java.lang.Integer trả về một đối tượng Integer, trong khi phương thức parseInt() trả về một kiểu dữ liệu nguyên thủy int.

Xem thêm: khóa học Java cơ bản miễn phí của AnonyHome: https://hoclaptrinh.me/courses/khoa-hoc-lap-trinh-java-co-ban/

ParseInt vs valueOf trong Java

– Nếu bạn xem mã nguồn của phương thức parseInt() và valueOf() từ class java.lang.Integer, bạn sẽ thấy rằng công việc thực tế của việc chuyển đổi Chuỗi thành số nguyên được thực hiện bằng phương thức parseInt(), valueOf() chỉ cung cấp bộ nhớ đệm của Integer được sử dụng thường xuyên Các đối tượng, Đây là đoạn mã từ phương thức valueOf() giúp mọi thứ rõ ràng:

public static Integer valueOf(String s) throws NumberFormatException {
    return Integer.valueOf(parseInt(s, 10));
}
Phương thức này trước tiên gọi phương thức parseInt(), để chuyển đổi String thành int nguyên thủy, sau đó tạo đối tượng Integer từ giá trị đó. Bạn có thể thấy bên trong nó duy trì bộ đệm Integer. Nếu int nguyên thủy nằm trong phạm vi của bộ đệm, nó trả về đối tượng Integer từ pool, nếu không nó sẽ tạo một đối tượng mới.

public static Integer valueOf(int i) {
    if (i >= -128 && i <= IntegerCache.high)
        return IntegerCache.cache[i + 128];
    else
        return new Integer(i);
}
Luôn luôn có sự nhầm lẫn, nên sử dụng parseInt() hay valueOf() để chuyển đổi String thành int nguyên thủy trong java và đối tượng java.lang.Integer.  Tôi khuyên bạn nên sử dụng parseInt() nếu bạn cần int nguyên thủy và sử dụng valueOf() nếu bạn cần đối tượng java.lang.Integer.
 
 
 
Written by AnonyHome
Fullstack Developer ! Profile

Leave a Reply

Your email address will not be published. Required fields are marked *

KHÓA HỌC JAVA CƠ BẢN FREE
Cùng tham gia khóa học Java cơ bản miễn phí tại kênh Youtube của AnonyHome Team
NHẤN NÚT ĐĂNG KÝ KÊNH BÊN DƯỚI ĐỂ CÙNG HỌC LẬP TRÌNH MIỄN PHÍ
ĐĂNG KÝ KÊNH ĐỂ CÙNG HỌC LẬP TRÌNH MIỄN PHÍ