所有整形包裝類之間的比較,應當用equals比較

說明:對於Integer var = ? 在-128至127範圍內的賦值,Integer對象是在 IntegerCache.cache產生,會複用已有對象,這個區間內的Integer值可以直接使用==進行判斷,但是這個區間之外的所有數據,都會在堆上產生,並不會複用已有對象,這是一個大坑,推薦使用equals方法進行判斷。

public class TestIntegerIndex {
    public static void main(String[] args) {
        Integer var1 = 1;
        Integer var2 = 1;
        System.out.println(var1 == var2);
        Integer var3 = 128;
        Integer var4 = 128;
        System.out.println(var3 == var4);
        System.out.println(var3.equals(var4));
    }
}
true
false
true
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章