java八股概念补充

  1.  equals()和== 与 重写equals()为什么要重写hashcode
    1. equals()在不重写的情况下,equals()和== 相同,都是比较hashcode
    2. hash集合的新增一个对象的规则:为了效率,新插入对象的hashcode取模计算出一个地址集合下标地址,如果地址不存在对象直接插入,如果该地址存在对象,调用equals比较,相同覆盖,不相同进行散列(开放地址法,拉链法);
    上述逻辑就是满足java经典的判断【两个对象相同,hashcode必然相同】【hashcode相同,两个对象不一定相同】
    3.重写equals不重写hashcode会导致,两个equalsb比较相同的对象,但是hashcode不相同相同,hashcode不相同,永远无法覆盖对象的值,hash集合就用不了

     


      

posted on 2022-03-17 09:06  飘来荡去evo  阅读(22)  评论(0编辑  收藏  举报

导航