Java中==和equals的区别,equals和hashCode的区别

1、==是运算符用于比较两个变量是否相等

2、equals是Object类的方法,用于比较两个对象是否相等,默认Object类的equals方法是比较两个对象的地址,跟==的结果一样。

3、hashcode()也是Object类的一个方法,返回一个离散型的int整数,在集合类操作中使用,为了提高查询速度。(HashMap,HashSet等)

4、如果两个对象根据equals()方法比较是相等的,那么调用这两个对象中任意一个对象的hashCode方法都必须产生同样的整数结果。
如果两个对象根据equals()方法比较是不相等的,那么调用这两个对象中任意一个对象的hashCode方法,则不一定要产生相同的整数结果

猜你喜欢

转载自blog.csdn.net/jack_shuai/article/details/79361151