黑马程序员技术交流社区

标题: 引用地址与哈希值 [打印本页]

作者: 李龙龙    时间: 2011-11-16 02:36
标题: 引用地址与哈希值
一个对象的在内存的地址,是不是哈希值,直接打印对象显示的值是哪一个。两者有没有联系。
作者: qy    时间: 2011-11-16 02:59
内存地址是不是哈希值,这要看你是怎么实现哈希函数了。
直接打印的对象也不一定是哈希值。这要看你具体怎么实现哈希函数的

heima1.jpg (491.53 KB, 下载次数: 60)

heima1.jpg

作者: qy    时间: 2011-11-16 03:12
当你的到对象的哈希值后,可以根据该哈希值找到对象的存储区域,
再拿这个存储区域的每一个元素与该对象进行equals方法比较。就不用便利整个集合了
作者: 泼孩    时间: 2011-11-16 09:54
哈希值只是通过哈希算法得出
直接打印所显示的与你打印方法有关,如字符串,整形等
s.o.p("a");
s.o.p(1);
内存分堆内存和栈内存,
涉及到引用数据类型,如一个数组,数组中的元素在堆内存中都有一个16进制的地址用来存储,将地址值赋给变量变量指向数组,使用其中的元素,即引用该数组。
作者: 後天__牛永志    时间: 2011-11-16 10:22
System.out.println(per1);//Demo@7d772e
System.out.println(per1.toString());//Demo@7d772e
System.out.println(getClass().getName() + '@' + Integer.toHexString(hashCode()));//Demo@7d772e
@前的是Class的类名,@之后的是得到的哈希值的十六进制表现形式。
欲了解哈希值,单击链接http://baike.baidu.com/view/273836.htm




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