Integer 的对象用==比较是值在-128-127之间返回true超过区间返回false
原因:值在-128-127存储在常量池中,超过这个值就会在堆中开辟一个空间
public static void main(String[] args) {
Integer I1=127;
Integer I2=127;
Integer I3=128;
Integer I4=128;
Integer I5=-128;
Integer I6=-128;
Integer I7=-129;
Integer I8=-129;
System.out.println("I1==I2?:"+(I1==I2));
System.out.println("I3==I4?:"+(I3==I4));
System.out.println("I5==I6?:"+(I5==I6));
System.out.println("I7==I8?:"+(I7==I8));
}
运行结果:
I1==I2:true
I3==I4:false
I5==I6:true
I7==I8:false