Leaderboard ads banner

Java: khác nhau giữa ".equals()" và "=="

Trong khi lập trình ứng dụng em sử dụng == để so sánh giá trị hai biến với nhau.

if (str1 == str2) {
    // ...
}

Nhưng sau đó phát hiện ra chương trình gặp phải bug. Chuyển qua sử dụng .equals() để so sánh thì thấy bug được fix:

if (str1.equals(str2)) {
    // ...
}

Tuy nhiên em vẫn không hiểu được sự khác nhau giữa sử dụng .equals()== để so sánh hai biến như thế nào?

2 Câu Trả Lời

Lê Chương Lê Chương

equal(): là so sánh value được lưu trong biến
==: so sánh địa chỉ con trỏ

Bob Bùi Bob Bùi

equals() được dùng để so sánh các biến object (điển hình là biến String, với các class tuỳ biến thì developer cần phải tự implement hàm override cho hàm equals() nhé)
== được dùng để so sánh các biến primitive, như các biến giá trị có kiểu int, long, double...

Lưu ý: Khi thực hiện so sánh == giữa một biến object (ví dụ biến có kiểu Integer, Long, Double) với một biến primitive (ví dụ biến có kiểu int, long, double) thì Java sẽ tự động lấy giá trị của các biến object để so sánh với biến primitive.

Nội dung tối thiểu 100 ký tự

Câu Hỏi Liên Quan