1、对于基本数据类型变量,不能用equals, 只能用==。
用==比较变量两变量内存中对应的数值是否相等。
如:
int na = 8;
int nb = 8;
na == nb 是返回true的
2、 对于引用变量,它指向的是类型对象,该变量自己有一块内存,类型对象也有一块内存,引用变量内存里存储的是类型对象的首地址。用==比较的是引用变量的值是不是相等, 也表示这两个变量指向的对象是不是同一个对象。
如:
Object oa = new Object();
Object ob = new Object();
oa == ob 返回的是false, 因为他们指向的对象不是同一个。
Object oc = new Object();
Object od = oc;
oc == od 返回的是true。
3. equals不能用于基本数据类型。 对于定义的数据类型,个人可以根据具体的业务逻辑来定义该方法,用于检查两个对象的相等性。
对于定义的类型, 如果自己没有重写(继承自Object类), 默认情况下和==意义一样。
public boolean equals(Objectobj){
return(this==obj);
}
对于String, equals方法已经被重写(override), 他判断两个字符串是不是相同的