equals, 用法比較

2021-08-29 19:21:33 字數 1071 閱讀 1832

分以下幾步進行討論 

一、equals方法對於普通的類是比較引用是否相等,和==效果一樣,因為equals 方法是繼承object下來的,我們看下

object中equals方法的寫法:

public boolean equals(object obj)

二、對於基本資料型別的包裝類,euqals方法源**如下:integer舉例:

包裝類中重寫了equals方法

//比較的是值,不是引用,對於基本資料型別的包裝類「==」比較的才是引用

public boolean equals(object obj)

return false;

}對於基本資料型別,那麼==比較的就是值了,這個都很好理解

那麼我們看一下string這個類中的equals方法,string中也重寫了equals方法,具體**如下:

public boolean equals(object anobject) 

if (anobject instanceof string)

return true;

}} return false;

}

string這個類的equals方法比較特殊,它先比較引用,如果引用相等,那麼返回值就是true,如果引用不相等,

那麼再比較值,如果值相等,那麼返回值也是true,只有當引用和值都不相等的情況下,返回的才是false

關於string中的intern()方法,此方法返回的始終是string pool中的字串,我也在以前的文章說過,string的建立過程,如果string pool中不存在此字串,那麼建立乙個新的返回,如果有的話,就直接返回此物件,

遵循對於任何兩個字串st

當且僅當s.equals(t)true時,s.intern() == t.intern()才為true

當然如果你寫乙個自己的類的話,也可以自己重寫equals方法,用自己的方法來實現自己想要的功能

equals比較物件

對事物的乙個分類,他們具有相同的屬性和動作。世間萬物皆物件。類是物件的抽象。物件是類的實體。dog dog1 new dog 旺財 dog dog2 new dog 大黃 public class dog 現在有這兩個物件,dog類中有string name和int id兩個屬性,我們如何使用equ...

equals比較與等值比較

equals equals比較是兩個物件之間的比較,如果呼叫equals這個方法的物件為null,則會報空指標異常。equals比較的邏輯是 先判斷兩個物件的型別是否相等,在判斷兩個型別的屬性值是否相等,若都滿足,則這兩個物件是相對。等值 等值比較如是基本資料型別和引用型別之間的比較,則直接編譯不通...

和equals的比較

基本的資料型別都放在stack 棧 中 引用型別變數放在stack 棧 中,真正的內容放在heap 堆 中。堆 首先堆是動態分配的,jvm並不會自動釋放這部分記憶體。只用等待系統的gc來進行記憶體 棧 是在類載入中有系統靜態分配的,而且分配時按照記憶體的高低位址分配。這部分記憶體系統會自動進行釋放。...