Integer在创建一个对象的时候,如果值小于1b即在(-128~127)范围中那么,会将值放入缓冲池,下次再创建这个值的时候,Integer对象会直接在缓冲池中的调用第一次创建的值
如果创建对象的值不在-128~127范围内,则会创建新的对象。
就是说楼主你发的那个 Integer m = 128; 和 Integer n = 128;是两个不同的对象,分别指向不同的地址值。所以用 ==进行比较,地址值不同,输出的是false
如果是Integer m = 127; Integer n = 127;的话 输出结果就是true了
这是我理解的,你看看能明白了么 |