Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Android

ความแตกต่างระหว่าง == และเมธอด equals() ใน Java


ใน Java ทั้ง == และเมธอด equals() ใช้เพื่อตรวจสอบความเท่าเทียมของตัวแปรหรือออบเจ็กต์สองตัว

ต่อไปนี้คือความแตกต่างที่สำคัญระหว่าง == และเมธอด equals()

ลำดับ คีย์ == เมธอด equals()
1 ประเภท == เป็นออปเปอเรเตอร์ equals() เป็นเมธอดของคลาส Object
2 การเปรียบเทียบ == ควรใช้ในการเปรียบเทียบอ้างอิง (reference comparison) ตรวจสอบว่าอ้างอิงทั้งสองชี้ไปยังตำแหน่งหน่วยความจำเดียวกันหรือไม่ เมธอด equals() ควรใช้ในการเปรียบเทียบเนื้อหา (content comparison) ประเมินเนื้อหาเพื่อตรวจสอบความเท่าเทียม
3 ออบเจ็กต์ ออปเปอเรเตอร์ == ไม่สามารถโอเวอร์ไรด์ได้ เมธอด equals() หากไม่มีอยู่และใช้ Object.equals() มิฉะนั้นสามารถโอเวอร์ไรด์ได้

ตัวอย่าง == เทียบกับเมธอด equals

JavaTester.java

public class JavaTester {
    public static void main(String args[]) {
        String s1 = new String("TUTORIALSPOINT");
        String s2 = new String("TUTORIALSPOINT");
        // การเปรียบเทียบอ้างอิง
        System.out.println(s1 == s2);
        // การเปรียบเทียบเนื้อหา
        System.out.println(s1.equals(s2));
        // integer-type
        System.out.println(10 == 10);
        // char-type
        System.out.println('a' == 'a');
    }
}

ผลลัพธ์

false
true
true
true