Integer a=10,100,1000;
Integer b=10,100,1000;
a==b
当a和b为10,100时,为true,
当a和b为1000时,为false。因为
Integer存在常量池,一次性把从-128到127之间的所有数都初始化了
==比较的是内存地址,
当没超出赋值范围时,内存地址都为常量池中的地址,
超出了int的最大缓存量后各自new了一个对象,两个地址肯定不一样了。
Integer a=10,100,1000;
Integer b=10,100,1000;
a==b
当a和b为10,100时,为true,
当a和b为1000时,为false。因为
Integer存在常量池,一次性把从-128到127之间的所有数都初始化了
==比较的是内存地址,
当没超出赋值范围时,内存地址都为常量池中的地址,
超出了int的最大缓存量后各自new了一个对象,两个地址肯定不一样了。