Interger等包装类的比较
程序员文章站
2022-04-14 21:58:25
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类型中设置有缓存,范围 ......
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方法,但是参数是基本类型时,会将基本类型自动装箱成包装类型