1,equals() :
- equals 多用于字符串的内容比较;
- equals 方法来自Object类,所以,任何对象都能调用这个方法,
在Object类里面的原生实现,本质也是使用 == 比较两个对象的地址值是否相同;
//源码:
public boolean equals(Object obj) {
return (this == obj);
}
当对equals进行重写时,就可以根据实际逻辑进行内容的比较;
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Animal animal = (Animal) o;
if (age != animal.age) return false;
return color != null ? color.equals(animal.color) : animal.color == null;
}
2,== :
基本数据类型: 比较的是数据值是否相同;
- 引用数据类型: 比较的是地址值是否相同;
3,日常使用:
当变量是基本数据类型时,使用 == 去比较两个的数据值;
当变量是引用数据类型时,使用 equals 去比较两者的内容;