见如下代码:
——————我是分割线————————————
第一段代码i1 == i2,第二段代码却是i1 != i2
这是因为
在自动装箱时对于值从-128到127 之间的值 , 他们被装箱为integer对象后 , 会在内存之中被重用 , 也就是说代码一中的两个i的引用是同一个,第二段代码中的两个i的引用不是同一个!而equals()方法是比较两个对象的引用!!
Integer i1 = 200;
Integer i2 = 200;
if (i1.equals(i2))
System.out.println("i1 == i2");
else
System.out.println("i1 != i2");