int和Integer使用
int a=1000;
int b=1000;
比较a b两个数值是否相同 true
integer c=1000;
integer d=1000;
比较c d两个数值是否相同 false
integer e=127;
integer f=127;
比较c d两个数值是否相同 true |
分析:只有-128 – 127可以用到整数常量池(常量池有字符串常量池也有整数常量池)
integer是int的封装类,Integer作为常量时,对于-128到127之间的数,会进行缓存
也就是说Integer e = 127; e在范围内,这个时候就会存放在缓存中,当创建f时,Integer f = 127;发现缓存中有这个值 127,就会直接取出来赋值给f, 所以 e==f 地址相同,当不在这个范围内时(不在-128 – 127范围内时),new Integer()来new一个对象时,堆内存,地址也就不同