美文网首页
equal vs hashcode vs ==

equal vs hashcode vs ==

作者: 一生逍遥一生 | 来源:发表于2020-01-15 15:29 被阅读0次

==

== 运算符是用来比较两个变量的值是否相等。该运算符用于比较变量对应用的内存中锁存储的数值是否相同,
要比较两个基本类型的数据或者两个引用(两个变量是否指向同一个对象)是否相等,只能使用 == 运算符。

equals

equals 是Object类的一个方法。
Object类中定义的equals(Object)方法是直接使用 == 运算符比较的两个对象,索引没有覆盖equals(Object)方法的情况下,
equals(Object)与 == 运算符一样,比较的是引用。

相对于 == 运算符,equals(Object)方法的特殊指出就在于它可以被覆盖,可以通过覆盖的方法让它不是比较引用而是比较内容。

hashcode

hashCode()方法是从Object类中继承过来的,它也用来坚定两个对象是否相等。Object类中的hashCode()方法返回对象在内存中地址转换
成一个int值,如果没有重新hashCode()方法,任何对象的hashCode()方法都是不相等的。

equals是用给户调用的,如果需要判断两个对象是否相等,可以重新equals(Object)方法,然后在代码中调用,这样就可以判断他们是否相等。
hashCode()方法,用户一般不会调用。

equals相等 --> hashCode 一定相等
equals不等 --> hashCode 可能相等,也可能不想等
hashCode相等 --> equals不一定相等
hashCode不相等 --> equals 一定不想等

相关文章

  • equal vs hashcode vs ==

    == == 运算符是用来比较两个变量的值是否相等。该运算符用于比较变量对应用的内存中锁存储的数值是否相同,要比较两...

  • Java基础知识(二):hashCode VS equals

    2. hashCode VS equals 2.1 hashCode介绍 hashCode()的作用是获取哈希码,...

  • Hashmap

    object的hashcode和equal函数 hashcode()直接返回该变量的内存地址 equal()函数:...

  • equals() vs hashCode()

    1.深入理解equals() 上一篇中“==” 和“equals()”的区别中讲到:Object类中的equals...

  • 【五行论水】

    壬vs癸阳vs阴动vs静白vs黑勇vs谋狂vs逸涛vs渗敏vs睿急vs缓响vs寂奔vs驻吐vs纳 。。。。。。 水...

  • 【土为何物】

    戊vs己阳vs阴厚vs薄重vs轻凸vs平实vs虚深vs浅伟vs卑藏vs盖信vs疑稳vs浮强vs弱 土代表环境环境寓...

  • 【五行论木】

    甲vs乙 阳vs阴 直vs曲 纵vs横 高vs宽 挺vs垂 衝vs铺 优vs良 通vs达 干vs枝 上vs下 粗v...

  • 【五行论火】

    丙vs丁 阳vs阴 散vs聚 泛vs专 远vs近 猛vs文 爆vs缩 快vs慢 扩vs定 周vs点 外vs里 宏v...

  • 【五行论金】

    庚vs辛 阳vs阴 刚vs柔 锋vs锐 劈vs戳 悍vs险 确vs准 决vs绝 边vs端 理vs据 冷vs润 攻v...

  • java基础--集合和流

    1.Map()重写equal同时重写hashCode()方法 Object类中的equal()和==是相同的 S...

网友评论

      本文标题:equal vs hashcode vs ==

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