最新公告
  • 欢迎您光临极客文库,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们

  • hashCode

    关于hashCode参考之前的文章,点击参考之前文章。

    identityHashCode

    identityHashCode是System里面提供的本地方法,java.lang.System#identityHashCode。
    1. /**
    2. * Returns the same hash code for the given object as
    3. * would be returned by the default method hashCode(),
    4. * whether or not the given object's class overrides
    5. * hashCode().
    6. * The hash code for the null reference is zero.
    7. *
    8. * @param x object for which the hashCode is to be calculated
    9. * @return  the hashCode
    10. * @since   JDK1.1
    11. */
    12. publicstaticnativeint identityHashCode(Object x);
    identityHashCode和hashCode的区别是,identityHashCode会返回对象的hashCode,而不管对象是否重写了hashCode方法。

    示例

    1. publicstaticvoid main(String[] args){
    2.    String str1 =newString("abc");
    3.    String str2 =newString("abc");
    4.    System.out.println("str1 hashCode: "+ str1.hashCode());
    5.    System.out.println("str2 hashCode: "+ str2.hashCode());
    6.    System.out.println("str1 identityHashCode: "+System.identityHashCode(str1));
    7.    System.out.println("str2 identityHashCode: "+System.identityHashCode(str2));
    8.    User user =newUser("test",1);
    9.    System.out.println("user hashCode: "+ user.hashCode());
    10.    System.out.println("user identityHashCode: "+System.identityHashCode(user));
    11. }
    输出结果:
    1. str1 hashCode:96354
    2. str2 hashCode:96354
    3. str1 identityHashCode:1173230247
    4. str2 identityHashCode:856419764
    5. user hashCode:621009875
    6. user identityHashCode:621009875
    结果分析:
    1、str1和str2的hashCode是相同的,是因为String类重写了hashCode方法,它根据String的值来确定hashCode的值,所以只要值一样,hashCode就会一样。
    2、str1和str2的identityHashCode不一样,虽然String重写了hashCode方法,identityHashCode永远返回根据对象物理内存地址产生的hash值,所以每个String对象的物理地址不一样,identityHashCode也会不一样。
    3、User对象没重写hashCode方法,所以hashCode和identityHashCode返回的值一样。

    结论

    hashCode方法可以被重写并返回重写后的值,identityHashCode会返回对象的hash值而不管对象是否重写了hashCode方法。

      本站所有文章均由网友分享,仅用于参考学习用,请勿直接转载,如有侵权,请联系网站客服删除相关文章。若由于商用引起版权纠纷,一切责任均由使用者承担
      极客文库 » hashCode和identityHashCode的区别你知道吗?

      常见问题FAQ

      免费下载或者VIP会员专享资源能否直接商用?
      本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
      提示下载完但解压或打开不了?
      最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
      找不到素材资源介绍文章里的示例图片?
      对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
      极客文库
      程序员的加油站

      Leave a Reply

      Hi, 如果你对这款模板有疑问,可以跟我联系哦!

      联系发布者

      Leave a Reply

      Hi, 如果你对这款模板有疑问,可以跟我联系哦!

      联系发布者
      • 99会员总数(位)
      • 3629资源总数(个)
      • 44本周发布(个)
      • 0 今日发布(个)
      • 105稳定运行(天)

      欢迎加入「极客文库」,成为原创作者从这里开始!

      立即加入 了解更多