A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陆杨 黑马帝   /  2011-9-6 22:43  /  2091 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在毕老师的集合视频部分看到里哈希值这么个东西。但是还不是很明白这玩意到底是个什么东西,有什么用?各位帮忙解说解说,不胜感谢!

4 个回复

倒序浏览
[code=java]
class L
{
public static void main(String args[]) throws IOException
{
         Object obj=new Object();
         System.out.println(obj);
}
}[/code]输出结果为:
java.lang.Object@a90653

a90653是哈希值
回复 使用道具 举报
黑马网友  发表于 2011-9-6 23:04:45
藤椅
通过它可以找到 对象在内存的位置,每个对象的哈希值应该是不一样的
回复 使用道具 举报
黑马网友  发表于 2011-9-6 23:36:48
板凳
哈希算法将任意长度的二进制值映射为固定长度的较小二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希都将产生不同的值。要找到散列为同一个值的两个不同的输入,在计算上是不可能的。
  消息身份验证代码 (MAC) 哈希函数通常与数字签名一起用于对数据进行签名,而消息检测代码 (MDC) 哈希函数则用于数据完整性。
实例:小红和小明可按下面的方式使用哈希函数以确保数据完整性: 如果小红对小明编写一条消息并创建该消息的哈希,则小明可以在稍后散列该消息并将他的哈希与原始哈希进行比较。如果两个哈希值相同,则该消息没有被更改;但是,如果值不相同,则该消息在小红编写它之后已被更改。为了使此系统运行,小红必须对除小明外的所有人保密原始的哈希值。 以上问的百度……:D

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1 谢谢参与!

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-9-7 00:17:19
报纸
每个对象可以OVERRIDE hashcode 方法,作用是在内存中通过哈希算法生成一块特定区域,把相关对象放在那里(哈希值),如果生成相同类型对象,先去找同类的HASHcode,也就是在内存的特定的区域找,不会在要求去内存的别的地方开辟一个新的空间存对象。但是这会造成内存泄露的问题。具体请参阅【26_张孝祥Java高新技术_ArrayList_HashSet的比较及Hashcode分析】

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马