這個算不算是Bug?

2021-09-05 13:18:58 字數 544 閱讀 6523

先問大家乙個問題:obja == objb 和 obja.equals(objb) 是否等價?答案顯然是要看具體情況,或者說很可能是不等價的。

可是如果我這麼問呢?

對於定義float  a, b; 

a == b 是否應該和 a.equals(b)  完全等價呢?應該是的吧?也許大家的答案有下列幾個之一:

1、equals通常用於在==運算子過載的時候,比較引用是否相等。

2、equals通常用於比較引用型別的引用是否相等。

float沒有運算子過載,也不是乙個引用型別,甚至我也看不出有什麼必要讓equals和==表現得不一樣。然而我卻發現這兩個方法是不完全等價的!注意,我這裡討論的是a、b都是float的情況下。那麼什麼情況下不一樣呢?當a和b都是float.nan的情況下,==會得出false的結論,equals會得出是true的結論。

這下子我就懵了,為什麼要這樣呢?按照數學定義來說,nan之間的比較應該是false才對,因為「非數字」之間的比較是無意義的,更不可能相等啊。也許equals想要表達的是,他們從二進位制的角度上來說是相等的——兩者都是非數字。

這算不算是惡搞?

一本爛書 advanced c 中文版 譯者對這本書的翻譯簡直就是一次不折不扣,名副其實的惡搞行為。這本書英文名字是 advanced c programming styles and idioms 中文名字是 advanced c 中文版 是貝爾實驗室的一位同志寫的。這本書英文原版在amazon上...

這算不算悲劇

雖然算不上是名校,但至少也是985 211.畢業一年多,全部是拿實習工資,整天就是速食麵而且還身無分文。馬上又要面臨失業真是說不出的辛酸。小弟我畢業時大腦一暈被人忽悠進了國企,當初簽約的時候說工資比我留在西安4k都要好,媽的去了每個 月只有1500扣了五險一金只剩1300多。每天上班就是陪大媽們聊聊...

算不算被虛度的這幾年

目前作為乙個在體制內科研單位程式設計的非科班出身的野生碼農,這幾年的路走的平淡而又焦急不已。至於就朝著自己想做的事情努力的方向上來說,這幾年算不算被虛度了也是個讓自己心裡比較沒底的問題。2007年夏天來到西安上大學,專業是被調劑到的測控技術與儀器,在這所高校,基本算是個玩硬體的專業,那年可能也是因為...