Integer对象比较相等

public class IntegerTest {
    /***
     * 对于Integer var = ? 在 -128到127之间的复制,Integer对象是在IntegerCache.cache产生
     * 会复用已有对象,这个区间内的Integer值可以直接使用 == 进行判断
     * 但是这个区间之外的所有数据,都会在堆上产生,并不会复用已有对象
     * 这是一个大坑,推荐使用equals方法进行判断
     * 所有相同类型的包装类对象之间值得比较,全部使用equals
     */
    public static void main(String[] args) {
        Integer integer1 = 128;
        Integer integer2 = 128;
        System.out.println(integer2==integer1);
        System.out.println(integer2.equals(integer1));
        
        Integer integer3 = -128;
        Integer integer4 = -128;
        System.out.println(integer3==integer4);
    }
}

 

posted on 2018-04-03 18:30  嘣嘣嚓  阅读(332)  评论(0)    收藏  举报

导航