關於java中比較所用的"=="與s.equals()方法的不同

         在java中,比較有兩種方式,一種是用"==",另一種是用s.equals()方法。

         這兩個是有區別的,"=="方法是判斷兩個字符串的地址是否相同,即如果有a,b兩個字符串,他們都指向同一個對象,即同一個地址,則用"=="返回true;而如果不是指向同一個對象,即使兩個字符串的內容完全相等,"=="方法也會返回false;而s.equals()方法則是判斷字符串的內容是否相等,只要內容相等就返回true,當然,地址相等就更不用說了,肯定返回true。

對於沒有用new關鍵字的情況來說,這兩個的方法返回的結果是一致的,結果如下:

         String a="abc";

         String b="abc";

     a==b返回true,a,equals(b)返回true;

因爲他們指向同一個對象。

而當使用了new關鍵字,返回的結果就不一樣了,結果如下:

         String a=new String("abc");

         String b=new String("abc");

     a==b返回false,a,equals(b)返回true;

這時他們指向的是不同的對象了。

如果有說的不對的地方歡迎大家批評指正!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章