==:
- 比較兩基本類型變量的值是否相等
- 比較兩個引用類型的值 即記憶體位址是否相等,即是否指向同一對象
equals():
- 兩個對象的内容是否一緻
public class TestEquals {
public static void main(String[] args){
Object obj;
String str;
String str1 = new String("qqq");
String str2 = new String("qqq");
System.out.println(str1.equals(str2)); //true
System.out.println(str1 == str2); //false
}
}
如上代碼:
str1.equals(str2) :比較所指的對象的内容是否一緻
str1 == str2 : 比較str1和str2 的值即記憶體位址是否相等,即是否是指向同一對象
String str3,str4;
str3 = "qqq";
str4 = "qqq";
System.out.println(str3.equals(str4)); //true
System.out.println(str3== str4); //true
上述代碼是引用字元串常量對象,其中str3 str4 具有相同的引用,因而具有相同的實體。
PS:自定義類須重寫equals(),否則比較結果總是false