與equals的區別

2021-08-17 20:28:45 字數 1233 閱讀 4472

在學習關於運算子的時候,我對於==和equals這倆個都是比較的運算子不是很清楚,通過查詢其他的資料,我對他有了乙個較為直觀的理解。

int it=65;  

float fl=65.0f;

//將返回true

system.out.println("65和65.0是否相等?"+(it==fl));

char ch='a';

//將返回true

system.out.println("65和a是否相等?"+(it==ch));

2.如果兩個變數是引用型變數,比較的是兩個物件的位址是否相等,即都指向同乙個物件,返回true

string str1=new string("hello");  

string str2=new string("hello");

//將返回false str1與str2使用了new,指向的不是同乙個物件

system.out.println("str1和str2是否相等?"+(str1==str2));

當使用equals比較時:

1.equals()

方法是object

類提供的乙個例項方法,因此所有引用變數都可以呼叫該方法來判斷是否與其他變數相等。

2.這個方法判斷兩個物件相等的標準與使用

==運算子沒有區別

,同樣要求引用變數指向同乙個物件時才會返回

true

。因此,若想自定義相等的標準,需要我們重寫

equals()

方法。3.string已經重寫

了object

的equals()

方法,只要兩個字串所包含的字串行相同,通過

equals()

比較將返回

true

,否則將返回

false

。equals是判斷字串內容是否相等,

字串的值不可變。

//重寫equals()方法,自定義相等的標準  

public boolean equals(object obj)

//只有當obj是person物件

if(obj!=null&&obj.getclass()==person.class)

} return false;

}

equals方法比較兩個引用資料的位址是否相等。

與equals的區別

注意 當比較兩個基本資料型別的變數是否相等時 基本資料型別包括 byte short int long float double 當它們的值相同時,則 結果就為true eg public class class6 1 public static void main string args stri...

與equals的區別

public class equaltest 執行結果為 t1 t2 false t1 t2 t3 true t3 t4 true i1.equals i2 false i3.equals i1 i2 true i3.equals i4 true st1 st2 false st1 st2 st3 ...

與 equals的區別

與equals都是比較兩個變數得到true或false。在進行比較時,先說說記憶體,記憶體分為堆和棧。基本資料型別中,是把值存在棧中,把值傳遞給變數,這種傳遞叫值傳遞。引用資料型別中,是在棧中存位址,堆中存的new的物件,給變數賦值傳遞時,傳的是位址,這種傳遞叫引用傳遞。基本資料型別 int a 1...