知识点:自动装箱
自动装箱规范要求boolean、byte、char<=127,介于-128-127之间的 short 和 int 类型被包装到固定对象中。Java里面对处在在-128-127之间的Integer值,用的是原生数据类型int,会在内存里供重用,也就是说这之间的Integer值进行双等比较时只是进行int原生数据类型的数值比较,而超出-128127的范围,进行双等比较时是进行地址及数值比较。
例子:
Integer a=1000;
Integer b=1000;
Integer c=127;
Integer d=127;
if(a==b){
System.out.println("你肯定看错了,不可能相等的!")}
else if(c==d){
System.out.println("这回你没看错,确实是相等的!")
}
//输出结果为:这回你没看错,确实是相等的!