Interger等包装类的比较
Integer a = 1;
integer b = 1;
integer c = 500;
integer d=500;
System.out.print(a==b);
System.out.print(c==d);
上面两个输出结果分别为true和false
Integer类型中设置有缓存,范围为【-128,127】,当对象在这个范围内,会直接返回缓存中的引用,所以只要是范围内的integer对象就是相同的。而超出范围的Integet对象每次都是新创建出来的,所以不同。
此外,
当包装类和基本数据类型“==”比较时,包装类会自动拆箱成基本数据类型;
两个包装类进行“equals”比较时,首先会用equals方法判断其类型,如果类型相同,再继续比较值,如果值相同,则结果为true;
当包装类调用equals方法,但是参数是基本类型时,会将基本类型自动装箱成包装类型