黑马程序员技术交流社区

标题: 对象的引用与hashcode的关系 [打印本页]

作者: Eric1225    时间: 2014-10-27 21:01
标题: 对象的引用与hashcode的关系
对象的引用与hashcode的关系,这个一直没搞清楚,我们所说的对象的引用到底是什么,地址?还是hashcode。为什么输出的是 hashcode?而且不同对象的hashcode可以相同。求解
作者: 空洞的望着窗外    时间: 2014-10-28 08:14
本帖最后由 空洞的望着窗外 于 2014-10-28 08:21 编辑

问题很好,我的理解是:Ha s=new  Ha(),s是对象引用指向new出来的对象,new出来的对象有其内存地址,每一个对象都会有自己的hashcode,两个对象在比较equals的时候会用hashcode,用hashcode是去哈希表中找这个值key,如果两个对象hashcode相等,哈希表上的key就相同   两个都在这个key的链表上,这样说你明白不,其实我也不明白。
作者: 英雄传说ER    时间: 2014-10-28 10:24
一个一个来回答  第一 对象的引用:就是引用对象嘛,举个例子, String s=“abc”;
这里“abc”就是一个String对象, s不是对象“abc”,而是对象“abc”的引用
第二 地址值指的是对象的(地址的值)---这个明白否?
就是对象有一个位置, 传说中的地址, 这个地址用了一个hashcode值来表示
举个例子,一栋楼在二区13座, 二区13座就是地址, 这个地址用了B13来表示 , B13就是它的地址值
第三,不同对象的hashcode的地址值一定是不同的,同一个位置上不可能出现两个东西,你说的应该是 s 和 “abc”为什么hashcode相同了吧,或者 String n= “abc”,结果n和s的hashcode是相同的吧?
那是因为他们指向的都是同一个对象“abc”,地址当然都是一样的,就像一栋楼,地址就是那里,如果你用a表示这栋楼地址,又用b表示这栋楼地址,那么a=b 因为就是同一个地址嘛。

最后建议基础一定要牢,如果在视频第二天的地址图看懂了,后面这些理解起来就容易的多
作者: renchiyao    时间: 2014-10-28 10:37
还是针对性的多看视频,自己理解最好




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2