public static void main(String[] args) {
Integer a=1000;
Integer b=1000;
System.out.println(a==b);//false
System.out.println(a.equals(b));//true
//
System.out.println("###############");
/*Integer c=127;
Integer d=127;*/
/*System.out.println(c==d); //true
System.out.println(c.equals(d));*/ //true
/*Integer c=-127;
Integer d=-127;*/
/*System.out.println(c==d); //true
System.out.println(c.equals(d));*/ //true
/* Integer c=128;
Integer d=128;
System.out.println(c==d); //true
System.out.println(c.equals(d));*/ true
/*Integer c=-128;//
Integer d=-128;//
System.out.println(c==d); //true
System.out.println(c.equals(d));*///true
Integer c=-129;//
Integer d=-129;//
System.out.println(c==d); //false
System.out.println(c.equals(d));//true
}
当数值在[-128,127]的时候,这个时候有个缓存,按基本数据类型处理,不会包装成对象,所以用==符号的时候,是相等的,结果是true。
当大于这个数字段的时候,会包装成对象,用符号==的时候比较的是地址,所以结果是false