Integer a = 12;
Integer b = 12;
System.out.println(a == b); //true,原因:自动装箱时,当装箱数据 -128<=x<=127 时,取出实现在常量池中的数据填充
Integer c = 128;
Integer d = 128;
System.out.println(c == d); //false,原因:数据范围超出了 -128~127之间,在自动装箱时实质上是new对象
Integer e = new Integer(12);
Integer f = new Integer(12);
System.out.println(e == f); //false,原因:new对象在堆上开辟了两篇不同的内存区域,==比较的是引用变量的地址
Integer a = 12;
int b = 12;
System.out.println(a == b); //true,原因:引用数据类型和基本数据类型进行 == 类型的比较时,会先将引用数据类型自动拆箱为基本数据类型再进行比较