Integer a = 3;
Integer b = 3;
System.out.println(a==b);
上面的结果会输出true,jdk1.5以后会进行自动拆装箱,两个值为3的integer类型进行==比较,结果为true;
对于-128 ~~127 之间的数据,会到常量池中查找,如果存在则两个引用的地址相同。不在这个范围,则直接创建新的对象
Integer a = new Integer(3);
Integer b = new Integer(3);
System.out.println(a==b);
如果是这种方式,输出结果为false,应该是直接创建对象。