对于int 和Integer类型的比较:
1.基本类型与基本类型比较只能用“==”。
2.基本类型==基本类型的封装类型【基本封装类型会自动拆箱为基本类型,再比较】。
3.基本类型.equals(封装类型)//报错
4.封装类型.equals(基本类型)【基本类型自动装箱为封装类型,再比较】
5.封装类型.equals(封装类型)【先比较类型,如果类型相同且值也相同则true】
6.两个Integer类型进行“==”比较,如果是new Integer()定义则返回false。如果是直接写且其值在-128至127,其实是同一个对象,所以返回true,否则返回false。
代码:
public class zidongchaixaing {
public static void main(String[] args) {
int a=257;
Integer b=257;
Integer c=257;
Integer b2=57;
Integer c2=57;
Integer d = new Integer(5);
Integer e = new Integer(5);
System.out.println(a==b);
//System.out.println(a.equals(b)); 编译出错,基本型不能调用equals()
System.out.println(b.equals(c));
System.out.println(b==c);
System.out.println(b2==c2);
System.out.println(d==e);
}
}
true
true
false
true
false