java中的equals方法
Java中的equals方法是用于比较两个对象是否相等的重要方法。
一、定义:
equals方法是Object类中定义的一个方法,用于比较两个对象是否完全相同,因此equals方法也成为比较两个对象相等的方法。equals方法本来是用来比较两个对象的内存地址是否相同,如果相同则返回true,否则返回false。
二、equals方法的特性:
1、equals方法是一个实例级别的方法,只能用来比较两个对象,不能比较两个基本数据类型变量;
2、equals方法是一种反射方法,两个对象对应的类必须一样,否则我们调用equals方法一定会返回false;
3、equals方法递归调用,如果B的 equals方法没有重写覆盖A的equals方法,equals方法一直
向上递归查询,直到父类Object的equals方法才会停止;
4、equals方法一定要重写hashCode方法,否则会出现两个不同的对象的hashCode值相等的现象;
5、equals方法的重写非常重要,因为equals方法负责判断一个对象是否重复,当类中自定义变量,我们就应该重写equals方法,否则重新定义变量不能根据equals方法来判断是否相等。
三、equals方法的使用:
1、用于比较两个引用变量指向的对象是否完全相同;
2、可以用equals方法实现比较Object类的逻辑是否相同;
3、可以用equals方法实现比较自定义类的两个对象是否完全相同;equals()方法
4、equals方法不会比较两个对象的地址是否相同,除非equals方法被重写;
5、equals方法也可以用于判断某个对象是否存在,如果要做可靠的判断,最好还是要重写equals方法。
四、equals方法的重写:
1、首先,应让equals方法与compareTo或hashCode绑定,即当两个对象通过equals方法比较结果为相等时,它们的hashCode值应该是相等的,compareTo的值也应该相等;
2、其次,建议重写equals时指定一个final类型的标识符,用以表明是否是同一个对象;
3、最后,实现equals方法时必须考虑两个对象之间可能存在的null值现象。