在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;這時他們指向的是不同的對象了。
如果有說的不對的地方歡迎大家批評指正!