Integer i1 = new Integer(12);
Integer i2 = new Integer(12);
System.out.println(i1 == i2); //false
Integer i3 = 126;
Integer i4 = 126;
int i5 = 126;
System.out.println(i3 == i4); //true
System.out.println(i3 == i5); //true
Integer i6 = 128;
Integer i7 = 128;
int i8 = 128;
System.out.println(i6 == i7); //false
System.out.println(i6 == i8); //true
Integer的比较:
new:必然不相等,在堆中开辟新内存
不new:则看范围,Integer做了缓存,如果在 -128至127之间,则相等,否则和new同理
Integer和int的比较:
比较的是数值,Integer会做拆箱动作,来和基本类型作比较,与是否new都无关系。