int装箱比较

看过Effctive-java 这本书的人多少都会记得,int类型的值,-128到127之间的数,会进行缓存。

所以在心间装箱对象 new Integer()的时候,如果在此范围则不会新建对象而是使用缓存中已有的对象。

 

这就是为什么下面的两个方法得出的结果不一样。

Integer a = new Integer(5);

Integer b = new Integer(5);

syso(a==b);

//结果为true

 

Integer a = new Integer(128);

Integer b = new Integer(128);

syso(a==b);

//结果为false

posted @ 2017-02-15 10:15  百花生菌  阅读(172)  评论(0编辑  收藏  举报