「 」 和 equals 的區別

2022-06-28 01:15:14 字數 1114 閱讀 4377

對於==,如果作用在基本資料型別,則是值比較,如果是作用在引用物件(堆中資料),則是實體地址比較

對於equals,不能作用於基本的資料型別的變數,如果沒有對equals方法進行重寫,則比較的是引用資料型別變數所指向的物件的位址;

string ,date等類對equals方法進行了重寫,比較的是所指向物件的內容。

string s1 = "abc";

string s2 = "abc";

string s3 = new string("abc");

string s4 = new string("abc");

system.out.println("s1==s2, " + (s1==s2));

system.out.println("s2==s3, " + (s2==s3));

system.out.println("s2 equlas s3," + (s2.equals(s3)));

system.out.println("s4==s3, " + (s4==s3));

system.out.println("s4 equlas s3," + (s4.equals(s3)));

輸出:s1==s2, true //同一常量池中,位址相同

s2==s3, false//string為引用物件,new出來的在堆疊中,位址不同

s2 equlas s3,true // equlas被重寫,值比較

s4==s3, false  //new出的物件在堆中為兩個物件,擁有不同位址

s4 equlas s3,true //string中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都是比較...