equals和 的使用及誤區

2021-08-27 17:53:55 字數 1217 閱讀 6427

== 是運算子預設的是比較位址 可以與基本資料型別進行比較, 檢測位址是否相等
equals是方法,不可以與基本型別比較 預設的是檢測兩個內容是否相等   當乙個類沒有重寫equals方法時,預設的是object的equals方法此時和==比較是一樣,(equals判定字串判定的內容,)
string s1 = "abc";

string s2 = "abc";

system.out.println(s1 == s2);

system.out.println(s1.equals(s2));

輸出結果:

true

true

s1和s2是相同的位址     equals的內容也相同

int a = 100;

int b = 100;

system.out.println(a == b);

輸出:

true

equals不能比較基本資料型別     a與b相同會輸出true

string s3 = new string("abc");

string s4 = new string("abc");

system.out.println(s3 == s4);

system.out.println(s3.equals(s4));

輸出

false

true

s3和s4建立的物件肯定不是乙個位址s3==s4輸出false

s3與s4建立物件時的引數相同,equals為true

class student

//重寫equals的方法

public boolean equals(student obj)

}

student stu1 = new student("abc");

student stu2 = new student("abc");

system.out.println(stu1.equals(stu2));

輸出:true
重寫equals內容的比較,如果name相同則輸出true

和equals的區別及重寫

1.共同點 都可以做比較,返回值都是boolean 2.不同點 1,是比較運算符號,既可以比較基本資料型別,也可以比較引用資料型別,基本資料型別比較的是值,引用資料型別比較的是位址值 2,equals方法只能比較引用資料型別,equals方法在沒有重寫之前,比較的是位址值,底層依賴的是 號,但是比較...

和 equals 的作用及區別

的作用是比較兩個變數是否相等。double a 100.0 int b 100 system.out.println a b 輸出結果為 truestring str1 string str2 system.out.println str1 str2 輸出結果為 truestring str3 ne...

equals和 區別及用法

equals public boolean equals object obj 可以看出equals不能用於基本資料型別的比較 因為equals在string date double 和integrer包裝類中進行了重寫 eg 在string中 public boolean equals objec...