美文网首页
Java的==和equals的区别

Java的==和equals的区别

作者: 一块自由的砖 | 来源:发表于2021-01-22 13:06 被阅读0次

两者的意义

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

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

看图说明

image.png

总结

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

额外拓展

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

相关文章

网友评论

      本文标题:Java的==和equals的区别

      本文链接:https://www.haomeiwen.com/subject/twyszktx.html