java ==、equals、hashcode有什么区别

1、== 用来比较两个对象的存储空间

2、equals是Object类提供的方法之一,每个java类都继承Object类,所以每一个对象都具有equals方法,所以在没有覆盖equals方法的情况下,equals与==运算一样,比较的是引用

所以要比较两个对象的内容 要重写equals()方法

3、hashCode()方法是区分两个对象是否相等,返回内存中地址转换成的一个int值

一般覆盖equals()也要覆盖hashCode()方法

equals相等 hashcode就相等 、equals不等hashcode可能不等或者等

hashcode相等 equals可能等可能不等 hashcode不等equals一定不等

猜你喜欢

转载自www.cnblogs.com/zquan/p/10467257.html