int与integer的区别

2018-07-29  本文已影响9人  Rreply
public static void main(String[] args) {

        ArrayList a = new ArrayList();
        int aa = 11;
        Integer aaa = new Integer(aa);
        a.add(aa);    //在Java1.5之前没有拆箱装箱机制时,该用法是错的
        a.add(aaa);
    }
public static void main(String[] args) {
        Integer a = 4;
        Integer b = 4;
        Integer c = 1111;
        Integer d = 1111;
        System.out.println(a == b);   //true
        System.out.println(c == d);   //false
    }

自动装箱拆箱使用了享元模式的设计,在一个byte范围(-128 ~127)内的值被装箱成integer对象的时候会在内存中被重新复用。
与此类似的是,当程序第一次使用某个字符串直接量的时候,Java会使用常量池来缓存该字符串直接量,如果程序后面的部分需要使用该字符串直接量的时候,Java会使用常量池中的字符串直接量。

public static void main(String[] args) {
        String a = "aaaa";
        String b = "aaaa";
        String c = "aa" + "aa";
        System.out.println(a == b);    //true
        System.out.println(a == c);    //true
    }

总结

如果需要数值进行加减乘除计算的时候,就需要使用int,这个时候使用integer对象也是可以的,但是会消耗系统资源。
如果是需要对象来处理,那就应该声明一个integer对象,或者使用Integer方法把int数值转化成integer对象来处理。

上一篇 下一篇

猜你喜欢

热点阅读