`
chenzan2010
  • 浏览: 18271 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

java中hash码问题

阅读更多

1.hashcode()到底是干什么用的?好像是和数据结构的hash表有关?java对象怎么会和hash表有关的?java中的对象都是存在一个hash表中吗?  
   
  当你的对象存储在HashSet,HashMap,HsahTable等以hash表为工作机制的容器的时候   你才需要关心这个函数,不是java中对象都是存在一个hash表里面  
   
  2.为什么a.equal(b)==true则必定a.hashcode()==b.hashcode()。equal代表内容,hashcode代表内存地址,难道我理解错了吗?  
     
  谁说equals是比较内容的,默认的equals   就是与   ==   一样的效果  
   
   
  3.很多类都重写了hashcode,比如Integer.hashcode返回的是Integer的intValue。他们为什么要重写呢?  
   
  就是因为Integer重写了equals()   方法   ,所以要重写hsahCode(),以保证a.equals(b)   为true时候,有a==b;重写只要为了满足可能把Integer对象放到hash容器里面  
   
  4.有人说a.equal(b)==true则必定a.hashcode()==b.hashcode();反之 a.hashcode()==b.hashcode()则不一定a.equal(b)==true;   那奇怪了,hashcode岂不是毫无用处了?大家都用hashcode做什么呢?  
   
  用hsahCode()主要是支持hash容器的正确运行,hash容器根据hashCode决定对象的存储位置  
  hash容器速度比较快    

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/guoxu775/archive/2009/07/03/4319928.aspx

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    常用的hash算法(java实现)

    在计算机科学中,哈希(Hash)算法是一种用于将任意长度的数据映射为固定长度输出的函数。这种输出通常称为哈希值或消息摘要。在Java编程语言中,实现哈希算法可以方便地用于数据验证、查找表以及密码存储等多种用途...

    哈希计算工具 java-hash.7z

    在Java中,常见的哈希函数有MD5(Message-Digest Algorithm 5)、SHA-1(Secure Hash Algorithm 1)、SHA-256等。这些算法都具有不同的安全性和效率特性。 2. **MD5**: MD5是一种广泛使用的哈希函数,生成32位的...

    哈希计算工具 java-hash

    在Java中,常见的哈希算法库有Java自带的`java.security.MessageDigest`类,它支持多种哈希算法,如MD5(Message-Digest Algorithm 5)、SHA-1(Secure Hash Algorithm 1)和SHA-256等。使用这些算法,可以创建一个`...

    Java 生成校验码及校验码判断

    本篇将深入探讨如何在Java中实现校验码的生成以及如何在Web项目中应用这些校验码。 首先,校验码的基本原理是通过特定算法对原始数据进行计算,得到一个简短的、唯一的标识,这个标识可以反映出原始数据的一些关键...

    生成文件的Hash码MD5

    在Java中,生成文件的MD5 Hash码是一个常见的需求,主要用于数据完整性校验、文件比对或者密码存储等方面。 首先,我们要理解哈希函数的基本概念。哈希函数是一种单向函数,它将输入(也称为预映射或消息)转换为...

    java版本totp时钟动态离线密码源码demo

    TOTP算法中使用了HMAC,这是一种基于密钥的消息认证码,结合了散列函数和密钥来确保数据的完整性和来源的真实性。在TOTP中,HMAC通常使用SHA-1或SHA-256等散列函数。 3. **时间步长(Time Step)**: TOTP算法将...

    jhash::key:Java中的密码哈希实用程序

    贾什 Java中的密码哈希实用程序。 它可以使用PBKDF2 hmac SHA1 / SHA256 / SHA512,BCRYPT或SCRYPT来对密码进行哈希处理,并且可以自动添加盐并且具有Pepper选项。下载Maven: < dependency> < groupId>...

    java源码:哈希计算工具 java-hash.7z

    这个"java-hash.7z"压缩包包含了一个Java实现的哈希计算工具,这是一份经典的学习资源,可以帮助开发者深入理解哈希算法及其在Java中的应用。 哈希(Hash)函数是一种将任意长度输入(也叫做预映射pre-image)通过...

    Java常用的对密码加密的方法(MD5,SHA)

    本篇文章将详细介绍Java中两种常见的密码加密算法:MD5(Message-Digest Algorithm 5)和SHA(Secure Hash Algorithm)。我们将通过`CodeUtil.java`这个代码文件来探讨如何在实际开发中实现这两种加密方式。 首先,...

    基于Java的哈希计算工具 Java-hash.zip

    本篇将深入探讨Java中的哈希算法和其在Java-hash.zip压缩包中的应用。 首先,哈希(Hash)函数是将任意长度的输入(也叫做预映射pre-image)通过特定算法转换成固定长度输出的过程,这个输出就是哈希值或散列值。在...

    MD5Util_newspaper4pi_java_哈希值_MD5Util获取hash_

    标签"java 哈希值 MD5Util获取hash"进一步强调了这个工具类是用Java语言实现的,主要功能是计算哈希值,特别是MD5哈希值,而`MD5Util获取hash`可能是指`MD5Util`类中用于计算哈希的具体方法。 在提供的压缩包文件...

    基于java的哈希计算工具 java-hash.zip

    本压缩包"java-hash.zip"包含了基于Java的哈希计算工具,帮助开发者进行相关的编程实践。 首先,我们来了解一下哈希函数的基本概念。哈希函数是一种将任意长度输入(也叫做预映射)通过特定算法转化为固定长度输出...

    java 加密 硬盘码 序列号

    本文将深入探讨如何在Java中获取硬盘码、实现加密以及相关的安全问题。 首先,获取硬盘序列号在Java中并不直接支持,因为Java是一种跨平台的语言,它与底层硬件的交互相对较少。但可以通过JNI(Java Native ...

    基于Java开发的校验码工具.zip

    【标题】基于Java开发的校验码工具是一个实用的桌面应用程序,专为计算字符串和文件的校验码而设计。该工具集成了MD5、SHA1和CRC32这三种常用的校验算法,以确保数据的完整性和一致性。 【MD5】MD5(Message-Digest...

    JAVA中MD5加密密码算法

    在Java编程语言中,MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,主要目的是为了产生一个固定长度的、不可逆的数字摘要,常用于存储密码。MD5算法将任意长度的输入(也叫做预映射,pre-image)通过...

    解决java 与C# MD5 不一致问题 代码

    本文将详细介绍如何解决Java与C#中MD5哈希值不一致的问题,并提供相应的代码示例。 #### 一、MD5算法简介 MD5(Message-Digest Algorithm 5)是RSA数据安全公司设计并发布的一种散列函数,它能够接收任意长度的...

    java密码加密

    Java密码加密技术主要涉及到数据安全领域,用于保护敏感信息,防止未经授权的访问和篡改。在Java中,我们可以使用多种加密算法来实现...在实际应用中,还需要考虑密钥管理、安全性、错误处理以及性能优化等方面的问题。

    md5码 java 程序

    下面我们将深入探讨MD5码的原理、用途以及如何在Java程序中实现MD5码的生成。 MD5算法的原理: MD5是由Ronald Rivest在1991年设计的,它是一个单向函数,即给定任意长度的信息,通过MD5计算出固定长度的摘要信息,...

Global site tag (gtag.js) - Google Analytics