==和equals的區別
阿新 • • 發佈:2021-07-17
1、==既可以比較基本型別,也可以比較引用型別。對於基本型別就是比較值,是否相等。對於引用型別就是比較記憶體的地址。
2、equals的話,它是屬於java.lang.Object類裡面的方法,如果該方法沒有被重寫過預設也是==。
(可以看到String等類的equals方法是被重寫過的,而且String類在日常開發中用的比較多,久而久之,形成了equals是比較值的錯誤觀點)。
3、具體要看自定義類有沒有重寫Object的方法來判斷。
4、通常情況,重寫equals方法,會比較類中的相應屬性是否都相等。
5、通常情況下,自定義類如果要使用equals 比較物件實體(屬性值)是否相同,需要對equals進行重寫
public class testObj{ public static void main(String[] args){ //==運算子 equals方法 int i=10; int j=10; double d=10.0; //System.out.println(i==d);//true char c=10; //System.out.println(i==c);//TRUE Customer cust1=new Customer("djalei",21); Customer cust2=new Customer("djalei",21); //System.out.println(cust1==cust2);//false 地址不同。 String str1=new String("alei"); String str2=new String("alei"); System.out.println(str1==str2);//false System.out.println(cust1.equals(cust2));//false System.out.println(str1.equals(str2));//重寫了的 //equlas() //只適用於引用資料型別 // } }