包装类的“==”运算在 不遇到算术运算的情况下 不会自动拆箱
包装类的equals()方法不处理数据转型
equals 方法,因为此方法先是比较类型
自动装箱,将 42L 装箱成 Long 类型,所以调用 equals 方法时,类型相同,且值也相同,因此返回真。
equals是先比较引用地址是否相同,如果相true,并不是比较类型;当引用地址是否不相同,接着是比较是否是同一类型,再比较值
两个Integer类型进行“==”比较, 如果其值在-128至127 ,那么返回true,否则返回false, 这跟Integer.valueOf()的缓冲对象有关,这里不进行赘述。
Integer c=3;
Integer h=3;
Integer e=321;
Integer f=321;
System.out.println(c==h);//true
System.out.println(e==f);//false
基本型封装类型调用equals(),但是参数是基本类型,这时候,先会进行自动装箱,基本型转换为其封装类型,再进行3中的比较。
int i=1;
int j = 2;
Integer c=3;
System.out.println(c.equals(i+j));//true