一、Equals()和 HashCode()的区别
这两个方法都是 Object 类的方法。
- equals 通过用来判断两个对象是否相等;
- HashCode 的作用是获取哈希码,也称为散列码;它实际上是返回一个int整数。这个哈希码的作用是确定该对象在哈希表中的索引位置。
在 java 中 equals 和 hashCode 之间有一种契约关系:
1. 如果两个对象相等的话,它们的 hashcode 必须相等。
2. 但如果两个对象的 hashcode 相等的话,这两个对象不一定相等。
二、equals() 与 == 的区别是什么
- == : 它的作用是判断两个对象的地址是不是相等。即,判断两个对象是不试同一个对象。
- equals() : 它的作用也是判断两个对象是否相等。
- 基本数据类型(byte,short,char,int,long,float,double,boolean )==比较的是值
1)对于==,比较的是值是否相等 如果作用于基本数据类型的变量,则直接比较其存储的 “值”是否相等; 如果作用于引用类型的变量,则比较的是所指向的对象的地址
2)对于equals方法,注意:equals方法不能作用于基本数据类型的变量,equals继承Object类,比较的是是否是同一个对象 如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的