與equals的些許理解

2021-09-14 02:01:14 字數 382 閱讀 1406

= =是判斷兩個變數或例項是不是指向同乙個記憶體空間

equals是判斷兩個變數或例項所指向的記憶體空間的值是不是相同

除了string和封裝器,equals()和「= =」沒什麼區別

但string和封裝器重寫了equals(),所以在這裡面,equals()指比較字串或封裝物件對應的原始值是否相等," = = "是比較兩個物件是否為同乙個物件

= =是判斷兩個物件是否是同乙個物件

equals是進行值的判斷

string a = new string(「aaa」);

string b = new string(「a」);

b += 「aa」;

則 a == b //錯誤

a.equals(b)//正確

與equals 的全面理解

以前對於這兩個的理解都是這樣的 對於 如果是基本型別,則直接判斷值是否相等。如果是引用資料型別,則比較存放位址是否相等。對於equals 方法 比較存放位址是否相等。現在的理解 首先是資料儲存位置 棧 heap 記憶體中存放基本型別,引用,區域性變數 堆 stack 記憶體中存放new出來的物件 方...

和equals的理解

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

和equals的理解

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