和 equals 區別 工作多年獨特見解

2021-09-10 21:45:41 字數 996 閱讀 3738

從某種角度上來說== 和equals是沒有可比性的,乙個是比較運算子,乙個是方法。

equals方法是屬於object類中的方法,正如我們熟知的object類是所有類的父類,那就意味著我們所建立的類中都隱含地包括了equals方法,若不重寫的話就是呼叫的是object類中的equals方法。

原始碼

public boolean equals(object obj)
結論:若不重寫equals方法 == 和 equals()沒區別,都是比較位址,這也是== 和 equals() 唯一有聯絡的地方。

那麼string類呢?

原始碼

public boolean equals(object anobject) 

if (anobject instanceof string)

return true;}}

return false;

}

**解讀

先比較位址、位址相等直接返回true

判斷是否是string型別,若是就轉char陣列乙個字元乙個字元的比較,若全部相等,就返回true,否則false

那麼integer類呢?

原始碼

public boolean equals(object obj) 

return false;

}

**解讀:直接返回是否數值相等

結論:以上是重寫了object類中的equals方法,重寫的規則由自己來定,可以任性的直接返回「true」 或者返回「false」,也可以按照自己指定規則來寫,比如判斷兩個圓是否相等,我可以根據半徑,也可根據周長、還可以根據面積、直徑、…

工作多年老菜鳥的感悟!

從事軟體這個行業也有六年了,第一次寫博文,比較緊張。那麼,我寫這篇博文的目的是什麼呢?從事了六年軟體行業,從開始的小菜鳥變成了有六年工作經驗的老菜鳥?有時靜下來想想,真沒學到什麼,的六年時間,我不停的在coding,不停的在ctrl c ctrl v。記得從開始學會複製 貼上解決了問題之後,總是沾沾...

工作多年,關於執行緒數存在的誤區

不好了,線上伺服器超時嚴重,請求非常慢,好像報連線數too many了,怎麼辦?小夥伴們在反饋。一般我們的技術老大的處理方式,把連線數和執行緒池調大點,重啟,在觀察。往往這個方式是應急措施,治標不治本,因為不知道問題的原因。有個嚴重誤區,以為執行緒池設定太小了,調大點請求就會快了。今天老顧就帶著小夥...

工作多年,能力和工資被同學甩了幾條街了!

多年的工作讓我對這份工作失去了動力,對於平常的工作就是上級安排什麼我就做什麼,沒有自己的工作方法,工作效率低。沒有自己的工作 學習目標,沒有計畫,即使做了計畫也不能按時完成,習慣無法養成,經常半途而廢。工作這麼多年,感覺自己只懂得皮毛,在面試時沒有競爭力,以後工作難找 以上加粗部分是我在工作中遇到的...