詳述 與equals的區別

2021-10-04 02:00:43 字數 1024 閱讀 1985

1、== 在基本資料型別中比較值是否相等,在引用資料型別中比較位址是否相等。

int a = 12;

int b = 12;

int c = 3;

system.out.println(a==b);//a與b值相同,結果為true

system.out.println(a==c);//a與c值不同,結果為false

string name1 = "jim";

string name2 = "jim";

string name3 = "tom";

system.out.println(name1==name2);//name1與name2位址相同,結果為true

system.out.println(name1==name3);//name1與name3位址不同,結果為false

string name1 = "jim";

string name2 = "jim";

system.out.println(name1.equals(name2));//true

test test = new test();

system.out.println(name1.equals(test));//false

string name3 = new test("tom");

system.out.println(name1.equals(name3));//false

//解釋:name1和name3位址不同,但name3是string型別,滿足equals方法中第二個條件語句。兩個string物件每個字元構成的char型別陣列長度相等,但對應字元不同,所以返回false。

//equals方法(底層**):

public boolean equals(object anobject)

if(anobject instanceof string)

return true;}}

return false;

}

詳述 與equals區別

基本資料型別比較的是是否相等 引用型別比較位址是否相同。string str1 jim string str2 jim system.out.println str1 str2 比較位址,因為兩個變數都是常量池裡同乙個字串 jim 因此在棧裡儲存的相同的位址,輸出trueequals object類...

與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 ...