见题

解决方案 »

  1.   

    两个对象"=="他们的hashcode相等吗?
    两个对象equels 他们的hashcode相等吗?
      

  2.   

    两个对象"=="他们的hashcode相等吗? 
    两个对象equels 他们的hashcode相等吗?
      

  3.   

    ==  hashcode必等equals()相等  要看了  但定义 也是相等的
      

  4.   

    自己看下API吧  里面有讲
      

  5.   

    两个对象 == 的话,那说明引用的是同一个对象,equals 相等,hashCode 也相等
    两个对象 equals 为 true 的话,那说明值是相等的,hashCode 也相等,但是 == 并不一定会相等如果类没有重写 equals 和 hashCode 方法的话,就使用根类 Object 的方法,Object 的 equals 是直接判断 == 的。
    为了能让 equals 与 == 做不同样的事情,强烈建议重写 equals 方法和 hashCode 方法。更多的说明,可以参见 java.lang.Object 中 hashCode 和 equals 的 API DOC。
      

  6.   

    [Quote=引用 4 楼 yuchujin 的回复:]
    ==  hashcode必等 equals()相等  要看了  但定义 也是相等的
    [/Quote】四楼正解
      

  7.   

    相不相等要看你自己重写的equals()和hashcode()方法,由你决定。不过一般重写的话都是equals可以推出hashcode相等,反过来不行,hashcode()主要用在hashMap等哈希存储结构中,hashcode()相等说明在同一个桶,然后再判断equals()是否相等,通过这样可以快速判断是否有相同元素在hashMap中,楼主还不明白的话就去看看哈希查找原理
      

  8.   

    hascode相等表明引用的是同一对象,如果一个对象的hashCode变动了,会造成找不到这个对象,也就出现了内存泄漏的危险。
    参考:http://blog.csdn.net/java2000_net/archive/2008/11/14/3298928.aspx
      

  9.   

    hascode相等表示equals时会返回true,==表示他们的值相等
      

  10.   

    hashcode是计算散列码的,如果你学过数据结构的话,应该知道散列码的概念,比如说hash函数是i%13,那么当你i为3的时候,hashcode为3,当你i为16时,你的hashcode还是为3,这2个i显然不equals,所以说你不能通过hashcode相等判断i是否是同一个值,但反过来,如果两个i的值equals,比如都是3,那显然计算i%13得到的hashcode是相等的
      

  11.   

    不理解这个论断,难道hashcode还会采用随机数吗?
      

  12.   

    hashCode()主要是用来在hasSet和hashMap当中使用的,如果你不用这些,
    hashCode也不用重写,哈希表原理很简单,就好比是查字典,你的hashCode()
    是索引,你的值是你所要查找的东西,之所以要使用hashCode是为了提高查找的效率
      

  13.   

    == HashCode 必然相等
    equals() HashCode也是相等的
      

  14.   

    hashcode对应的是对象所存储的位置啊
      

  15.   

    我也是新手,一起学习吧(*^__^*) 
    两个对象equals,代表这两个对象一定相等,且hashcode()也一定相等
    但是hashcode相等代表这两个对象在很大程度上可能相等,也有两个对象不相等的情况,原因在于,现代的hashcode()的计算大都采用一种叫杂凑算法的方法的计算出来的,这虽然在很大程度上避免了相等的结果出现的情况,但也不是绝对能避免的,就象假设你叫一个很古怪的名字,不代表机没有其他人的名字和你的一样,只是碰到那个重名的人的概率很小,假设你叫王强,那你可能碰到同名的人的概率机大了(不知道这个比喻恰当不恰当)