Objects中的equals方法用于检测一个对象是否等于另外一个对象。判断两个对象是否具有相同的引用
源码如下
public boolean equals(Object obj) {
return (this == obj);
}
可以看到,equals方法是直接判断this和obj本身的值是否相等,即用来判断调用equals的对象和形参obj所引用的对象是否是同一对象,所谓同一对象就是指内存中同一块存储单元,如果this和obj指向的hi同一块内存对象,则返回true,如果this和obj指向的不是同一块内存,则返回false,注意:即便是内容完全相等的两块不同的内存对象,也返回false。
如果是同一块内存,则object中的equals方法返回true,如果是不同的内存,则返回false
官方文档中的说明:
It is reflexive: for any non-null reference value x, x.equals(x) should return true.
自反性,对于非空引用x,x.equals(x) == true;
It is symmetric: for any non-null reference values x and y, x.equals(y) should return true if and only if y.equals(x) returns true.
对称性,y.equals(x)=ture时,x.equals(y)==true;
It is transitive: for any non-nul