zoukankan      html  css  js  c++  java
  • Equals和GetHashCode

    Q:2个方法同时被重写的场景?

    A:DictionaryHashTablekey使用时,必须重写这两个方法;

    因为:
    根据key取值的时候也是把key转换成HashCode并且验证Equals后再取值,一定要注意验证时HashCodeEquals的关系是并且(&&)的关系。

    也就是说,只要GetHashCodeEqulas中有一个方法没有重写,在验证时没有重写的那个方法会调用基类的默认实现,而这两个方法的默认实现都是根据内存地址判断的,也就是说,其实一个方法的返回值永远会是false。其结果就是,存储的时候你可能任性的存,在取值的时候就是你哭着找不着娘了。

    注意事项:

    在程序的生命周期中,相同的对象、变量返回的HashCode是相同的,并且是唯一的。但是绝对不允许做持久性存储,程序一旦结束并重新启动后,同样的对象无法获得上次程序运行时的HashCode

    也就是HashCode值跟内存地址有关

    引用地址:

    https://www.cnblogs.com/xiaochen-vip8/p/5506478.html

  • 相关阅读:
    Linux 常用命令总结(二)
    Linux(CentOS7)使用 RPM 安装 mysql 8.0.11
    Linux(CentOS7) 相关软件安装
    8、js——字符串
    7、js——数组
    6、js——创建对象方式
    5、js——this说明
    4、js——函数
    4、js——对象
    2、js编写位置
  • 原文地址:https://www.cnblogs.com/sunzhenyong/p/10874088.html
Copyright © 2011-2022 走看看