1. 程式人生 > >關於Integer的比較大小問題即到底是用“==”還是“equals”來比較大小

關於Integer的比較大小問題即到底是用“==”還是“equals”來比較大小

今天上班做專案的時候,經理說凡是 Integer 的型別的整數在比較大小的時候都用"equals.()",不能用"==",即是前者可能在效能上稍遜於後者,但是用後者的話存在bug的可能性,當時自己就一頭霧水了,後來查了一下原始碼才知道,當Ingeter型別的整數在-128到127的範圍時,在比較大小的時候直接用的int原始資料型別,所以這個時候無論用 '' equals.() " 還是 " == " 都會返回true(當然前提是兩個比較大小的數在數值上要相等),但是超出這個範圍(-128~127)之後在比較大小的時候是返回一個新的Integer物件的,這個時候兩個要比較大小的數在數值上雖然大小相等,但是不是同一個物件,所以在比較時,用"=="會返回莫名其妙讓你摸不著頭腦的"false",所以如果你期望返回的是"true",那就請用"equals.()"來比較大小吧,(如果你只希望比較這兩個數的數值大小,而不考慮是否同屬一個物件),這就是我今天上班的總結,也希望在日後的專案中能起到借鑑作用....