Java的==和equals的区别

2021-01-22  本文已影响0人  一块自由的砖

两者的意义

==:比较的的变量内存中的地址,就是引用是否相同

equals():比较的是两个对象是否相等,就是数值是否相同

看图说明

image.png

总结

有些类(像String、Integer等类)对equals进行了重写,但是没有对equals进行重写的类(比如我们自己写的类)就只能从Object类中继承equals方法。默认的实现equals与==是等效的。

额外拓展

hashcode()主要是为了查找的快捷性,对对象生成一个哈希值。这个方法可以被重写。
hashcode()和equals()的关系
1.equals() 用来比较该类的两个对象是否相等,而hashCode() 则根本没有任何作用。
2.equals()比较两个对象时返回true,那么它们的hashCode()值一定相同。
3.如果哈希冲突场景中,两个对象hashCode()相等,它们值并不一定相等。

上一篇 下一篇

猜你喜欢

热点阅读