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方法,但是参数是基本类型时,会将基本类型自动装箱成包装类型

你可能感兴趣的:(Interger等包装类的比较)