1. 程式人生 > >Java中判斷兩個lang型別是否相等問題

Java中判斷兩個lang型別是否相等問題

開發中有遇到Long型別比較是否相等,比如Long A和Long B判斷是否相等,當時習慣性的直接A==B;

自測的話確實麼有問題,但是測試那邊測試就有問題,當時鬱悶了一下然後換成了A.equals(B)或A.longValue()==B.longValue()都是正確的;

    改完bug,覺得需要看看是為什麼,通過看Long.class,可以看出


    如果值在[-128, 127]之間,會放在快取裡面,而超過這個範圍就要new一個新的物件,也就是說==不能判斷物件是否相等。自測的話A或者B值設定的都比較小,而測試會考慮多方便的效果,所以就GG了。

所以說,Java基礎很重要,沒事要多看看原始碼!!!!

作者:scgyus