Object.equals
- equals是Object类中的方法,只能判断引用类型
- equals 默认判断的是地址是否相等,子类中往往重写该方法,用于判断内容是否相等。比如Integer、String
Objects.equals
Objects(java.util.Objects
)该类由static
用于对对象进行static
实用方法组成。 这些实用程序包括用于计算对象的哈希码的null
-safe或null
方法,为对象返回一个字符串,并比较两个对象
源码分析
public static boolean equals(Object a, Object b) {
return (a == b) || (a != null && a.equals(b));
}
- 首先,进行了对象地址的判断,如果是真,则不再继续判断。
- 如果不相等,则先判断a不为空。所以,如果都是null,在第一个判断上就为true了。如果不为空,地址不同,就重要的是判断a.equals(b)。
注意
- Objects.equals方法在两个入参类型不同时,会直接返回false