對於equals和 的理解

2022-08-10 01:03:15 字數 425 閱讀 4525

很多時候equals和==大家都分不太清楚怎麼樣來使用,今天小編就來教大家怎麼使用

equals比較的是兩個變數的值是否相等

而==則比較的是這個變數的記憶體位址是否相同

打個比方來說

string a = new string("a");

string b = new string ("a");

system.out.print(a==b); //false

system.out.print(a.equals(b)); //true

很明顯 a==b 他們兩個是同時在new乙個新的位址,就是說在記憶體中存了有a 和 b 兩個變數,但是他們的值都是一樣的而已。但是記憶體位址並不一樣,所以a==b 輸出結果為 false

而 a.equals(b) 因為兩個變數建立出來的值都是a,所以輸出結果則為false。

和equals的理解

equals方法是object類提供的乙個例項方法,所以所有的引用變數都可以呼叫該方法來判斷所指向的物件是否相等,該方法判斷的標準和 的判斷標準沒有任何區別都是用來比較需要比較物件的位址是否相同。但是為什麼有了 還要寫乙個equals方法呢?之所以這這樣多此一舉是因為可以讓子類重寫equals方法,...

和equals的理解

1 package testequals 2 3 測試by asceticj 4 本類是用來測試 和equals 方法 5 結果如下 6 1 和equals方法預設乙隻,均表示比較的是物件本身 7 2 基本資料型別的包裝類和string類的equals 的方法已經被預設重寫了 表示比較物件的內容 8...

如何理解 和equals方法

操作符專門用來比較兩個變數的值是否相等,也就是用於比較變數所對應的記憶體中所儲存的數值是否相同,要比較兩個基本型別的資料或兩個引用變數是否相等,只能用 操作符。如果乙個變數指向的資料是物件型別的,那麼,這時候涉及了兩塊記憶體,物件本身占用一塊記憶體 堆記憶體 變數也占用一塊記憶體,例如 objet ...