這個問題看了許多人的回答,但感覺都不是很滿意;
基本資料型別做比較的時候,應該使用==;
引用型別做比較的時候兩個都可以;
==比較的是記憶體位址,equals方法在object裡源**也是用==來比較,比較的也是記憶體位址;
但有特殊的例子,比如在string中,==號比較的是記憶體位址,但是equals比較的是值,因為string這個模擬較特殊,jdk幫我們重寫了string的equals方法,所以在string裡equals比較的是值。有的時候也需要我們重寫equals方法,因為在它是object類的乙個方法,我們需要比較物件的時候最好是重寫該方法,比如我們自定義的類做hashmap的key時,我們經常需要重寫equals方法,並且用equals方法的返回結果是布林型別的,可以直接用來做判斷,但要注意的是用equals方法來比較物件的時候,第乙個物件一定得檢查是不是存在了,不然會出現空指標異常;
Equals 和 的區別
對於值型別,如果物件的值相等,則相等運算子 返回 true,否則返回 false。對於string 以外的引用型別,如果兩個物件引用同乙個物件,則 返回 true。對於 string 型別,比較字串的值。操作比較的是兩個變數的值是否相等。equals 方法比較的是兩個物件的內容是否一致 equals...
equals 和 的區別
equals 方法 是string類從它的超類object中繼承的 被用來檢測兩個物件是否相等,即兩個物件的內容是否相等。用於比較引用 和 比較基本資料型別時具有不同的功能 1.比較基本資料型別,如果兩個值相同,則結果為true 2.而在比較引用時,如果引用指向記憶體中的同一物件,結果為true s...
和equals的區別
和 equals 的區別 1.是乙個運算子。2.equals則是string物件的方法,可以.點 出來。我們比較無非就是這兩種 1 基本資料型別比較 2 引用物件比較 1 基本資料型別比較 和equals都比較兩個值是否相等。相等為true 否則為false 2 引用物件比較 和equals都是比較...