hashCode()和System.identityHashCode的区别_system.hashcode_学习进行时!的博客-程序员宅基地

技术标签: java  散列表  哈希算法  javaSE  

hashCode是根据对象的地址生成的哈希值,只要判断出两个对象的hashCode不一致,就知道两个对象不是同一个
我运行的代码

		Student s1 = new Student(18,"Kang");
		Student s2 = s1;
		System.out.println(s1.hashCode());
        System.out.println(s2.hashCode());
        System.out.println(System.identityHashCode(s1));
        System.out.println(System.identityHashCode(s2));
        System.out.println(s1.getName().hashCode());
        System.out.println(s2.getName().hashCode());
        System.out.println(System.identityHashCode(s1.getName()));
        System.out.println(System.identityHashCode(s2.getName()));

结果:
在这里插入图片描述
为什么后四个不是一样的呢?
看了博客https://blog.csdn.net/u012501054/article/details/89353074?spm=1001.2014.3001.5502
总结:
1、hashCode是 java.lang.Object.hashCode() 或者 java.lang.System.identityHashCode(obj) 会返回的值。他是一个对象的身份标识。官方称呼为:标识哈希码( identity hash code)。
异同
2.hashCode()在Object类里有,但是子类可以重写,重写的话就调用重写的hashCode();
3.System.identityHashCodo()一直都是调用Object的hashCode(),无论子类是否重写了hashCode()方法。

综上:

可知因为String重写了hashCode。查到String类里是对hashCode重写的
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43585646/article/details/122517138

智能推荐

php环境配置(phpstorm)_phpstorm自带php环境吗-程序员宅基地

文章浏览阅读453次。介绍一下php环境的搭建如何写第一个php程序_phpstorm自带php环境吗

arm linux 下mq,在arm-linux環境下的編譯ActiveMQ-CPP 嵌入式版本庫_宙宇001的博客-程序员宅基地

文章浏览阅读117次。(1) 編譯安裝cppunit-1.12.1 ,切換至該目錄。執行./configureLDFLAGS='-ldl--host=arm-linux--prefix=/usr/local/arm/cppunit/成功之后,執行make,再執行make install 進行安裝。這時可以到/usr/local下查看會生成cppunit目錄。注:在linux能正常編譯,但在solaris下make時遇..._arm架构下安装activemq

2017/6/9-Python文件读写的方法-程序员宅基地

文章浏览阅读171次。# 使用斜杠“/”: "c:/test.txt"… 不用反斜杠就没法产生歧义了 # 将反斜杠符号转义: "c:\\test.txt"… 因为反斜杠是转义符,所以两个"\\"就表示一个反斜杠符号 # file=open('D:\\jupyter\\test.txt')##file=open('D:/jupyter/test.txt')#file=op...

二叉树前、中、后序遍历及还原二叉树_n 的二叉树的后序遍历和中序遍历,请你还原出原二叉树_柳叶lhy的博客-程序员宅基地

文章浏览阅读2k次。二叉树:前序遍历根节点 —>左子树—>右子树顺序:根节点 —>前序遍历左子树(根->左->右)—>前序遍历右子树(根->左->右)遍历结果:A-B-C-D-E-F-G-H-I中序遍历左子树—>根节点—>右子树顺序:中序遍历左子树(左->根->右)—>根节点—>中序遍历右子树(左->根->右)遍历结果:D-C-B-E-F-A-H-G-I后序遍历左子树—>右子树—>根节点_n 的二叉树的后序遍历和中序遍历,请你还原出原二叉树

初定明晚开会(gavin)-程序员宅基地

文章浏览阅读1.1k次。离上次开会已经有五六天没开过会了,不知大家最近进展如何?很多东西需要开始动手了,很多东西在我们的计划中应该最近开始投入做了,希望各位调整心态,把自己的精力集中投入这次竞赛,我也借此机会谈一下以前参加机器人比赛的一些心得吧.记得我们以前参加全国足球机器人大赛的时候,学校里的同学们一谈到我们机器人足球团队,就认定我们肯定是能拿全国大奖的,其实在拿奖之前我们有的更多是汗水.先从团队队员的心态说起吧,

Ubuntu环境下python2和python3切换-程序员宅基地

文章浏览阅读1.3w次。问题:Ubuntu环境下python2和python3的切换问题环境:Ubuntu16.04Ubuntu自带python2,有时候需要使用pytho3。该如何切换呢?使用 update-alternatives操作方法:建立链接:sudo update-alternatives --install /usr/bin/python py

随便推点

帝国cms 调用指定栏目 名称 链接 别名-程序员宅基地

文章浏览阅读8k次。注意,这个代码无须放在灵动标签中,直接写入模板相应的位置就行了。1、调用栏目名称: <?=$class_r[栏目ID]['classname']?> 示例:<?=$class_r[1]['classname']?> ,在这种情况下,就可以正常显示栏目id为1的栏目名称。2、调用栏目链接: <?=$class_r[栏目ID]['classpath']...

子元素的margin-top为什么会影响父元素?_子元素margin影响父元素_苏苏哇哈哈的博客-程序员宅基地

文章浏览阅读2.8k次,点赞6次,收藏12次。1.两个元素,当你为子元素设置margin-top的时候,你会发现什么呢?2.解决方法父元素设置1-overflow: hidden2-display: inline-block;或者float布局3-border: 1px solid transparent; 4-position: absolute_子元素margin影响父元素

Circuits--Sequential Logic--Finite State Machines--Fsm2s_余睿Lorin的博客-程序员宅基地

文章浏览阅读78次。网址:https://hdlbits.01xz.net/wiki/Fsm2smodule top_module( input clk, input reset, // Synchronous reset to OFF input j, input k, output out); // parameter OFF=1'b0; parameter ON =1'b1; reg state, next_state; alway

常用工具和插件,常见功能解决方案-程序员宅基地

文章浏览阅读725次。json在线校验http://www.bejson.com/go.html?u=http://www.bejson.com/jsonview2/正则表达式在线验证http://regexpal.com/日期控件My97DatePicker:http://www.my97.net/分页控件AspNetPager:http://www.webdiyer.com/Controls/AspNetPager

使用阿里云搭建网站并实现站库分离_什么是站库分离-程序员宅基地

文章浏览阅读1k次。使用阿里云搭建自己的网站并用阿里云RDS实现站库分离,本文章将从注册域名到部署网站详细地讲解。原文:https://blog.zeruns.tech/archives/513.html什么是站库分离:站库分离就是网站和数据库不在同一个服务器上,数据库用的是内网网络;这样的操作模式更快,更安全;很多大型的企业都采用站库分离的模式。推荐几个网站程序,自己根据需要选择:论坛:DiscuzX博客..._什么是站库分离

推荐文章

热门文章

相关标签