关于这个问题,很多人都能够说出它们之间的区别,在这里对equals 方法进行深入分析。
1、区别
“==”比较的是对象的地址,如果对于基本类型,比较的是变量的值。
equals比较的准则是自己定义的,有的类中重写了Object类的equals方法,有的没有重写,没有重写的比较的准则就是对象的地址,重写的如String类,比较的是内容。也可以自己重写,准则自己定。
public boolean equals(Object obj) {//Object类的equals方法
return (this==obj);
}
2、equals方法的重写规则
- 自反性
- 对称性
- 传递性
- 一致性
- 若obj非空,则obj.equals(null)=false