1.==
等式两边为基本数据类型时,比较的是数据内容。
int a=10,b=10;
System.out.println(a==b);//true
等式两边为引用类型时,比较的是引用类型的地址
Integer a=128,b=128;
System.out.println(a==b);//false
2.equals
因为java中所有类默认继承Object类,所以默认继承Object类的equals方法。
当该类没有覆写equals方法时,equals默认比较的是引用类型的地址(相当于==)。
public boolean equals(Object obj) {
return (this == obj);
}
如果要比较引用数据类型的内容则需要覆写equals方法,以基本数据类型的包装类为例
public boolean equals(Object obj) {
if (obj instanceof Integer) {
return value == ((Integer)obj).intValue();
}
return false;
}