欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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