如果你有一个对象,引用几次,每次引用该对象,取得的hashcode相同吗?为什么?

解决方案 »

  1.   

    这取决于你有没有重写hashcode方法 如果你没有重写 那只要对象的地址不变 hashcode就是一样的
      

  2.   

    重写hashcode()方法可以控制hashcode。
      

  3.   

    这要取决于Hashcode算法实现。java给每个Object的Hashcode默认实现是根据内存地址算出来的,所以,通常Hashcode是稳定的,
    也就是,同一个对象,多次引用,Hashcode相同。但,Hashcode往往和Equals方法同时被用户重写,这时候,Hashcode有可能是根据类的某些成员变量计算出来的,
    因此,Hashcode有可能会变哦。因为Java通常要求HashCode和Equals函数同时被重写,并且要求保证Equals返回true的两个对象,hashcode返回值也一定相等,
    因此可以推断,如果一个类的内部发生改变,导致Equals方法结果变化,其Hashcode也发生变化。
      

  4.   


    完全相同!从你的表达来看,一个对象,引用几次,既然是同一个对象,hashcode肯定相同引用几次并不会改变hashcode可能你表达的不是你的本意吧
      

  5.   

    谁说的 要是重写hashcode并把当前系统时间作为参数呢?