1.equals() 和 == 最大的区别是一个是方法一个是运算符。
2. == 如果比较的是基本数据类型,那么比较的是二者的数值是否相等,如果比较的是引用数据类型,那么比较的是对象的地址值是否相等。equals()比较的是二者的对象的内容(数值)是否相等。
注意: equals不能用于基本数据类型的变量,如果没有对equals方法进行重写,那么引用数据类型的变量所指向的对象的地址。
//对equals重写时需要注意五点
1 自反性:对任意引用值X,x.equals(x)的返回值一定为true;
2 对称性:对于任何引用值x,y,当且仅当y.equals(x)返回值为true时,x.equals(y)的返回值一定为true;
3 传递性:如果x.equals(y)=true, y.equals(z)=true,则x.equals(z)=true ;
4 一致性:如果参与比较的对象没任何改变,则对象比较的结果也不应该有任何改变;
5 非空性:任何非空的引用值X,x.equals(null)的返回值一定为false 。