-
equals()和==是什麼?
- equals():是方法,定義在超類Object中的一個方法,而Java中所有的對象都是繼承自Object類的,所以子類是可以重寫eqauls()方法而實現不同的功能。
- ==: 是操作符,用來比較兩個對象。
爲什麼會將一個操作符和一個方法進行比較呢?
因爲它們都是用來比較兩個對象的,但它們在用法上又有些區別。
1.對於基礎數據類型,使用“=="比較值是否相等;
2.對於複合數據類型(類),使用equals()和“==”效果是一樣的,兩者比較的都是對象在內存中的存放地址(確切的說,是堆內存地址)。
3.對於String、Integer、Date等覆蓋了equals()方法的類型,“==”比較的是存放的內存地址。而equals()的結果則由覆蓋後的代碼決定。
4.string類型中,String重寫了equals()方法,從引用地址比較變成引用內容的比較。如:
1 2 3 4 5 6 7 8 |
|