`
chenzan2010
  • 浏览: 17816 次
  • 性别: 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码MD5

    Java程序。可以生成文件的MD5哈希值。生成的Hash值可保存到txt文件中。程序完全可运行。

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

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

    JAVA上百实例源码以及开源项目

     Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码...

    GeoHash是目前比较主流实现位置服务的技术,用最简洁的Java实现GeoHash算法.zip

    可移植性:Java字节码可以在所有安装了JVM的设备上执行,从服务器到嵌入式系统,再到移动设备和桌面应用。 健壮性与高性能:Java通过垃圾回收机制确保内存的有效管理,同时也能通过JIT编译器优化来提升运行时性能...

    Bruteforce:一个用 Java 编写的暴力密码破解器,用 svn2git 从 svn repo 转换而来

    蛮力一个用 Java 编写的暴力密码破解程序,从 svn repo 转换而来,使用 svn2git。 由于时间限制,它只是部分完成。 它通过命令行或交互模式 (-i) 接受以下参数。 -bf 使用暴力破解密码-zip 破解加密的zip文件文件名...

    JAVA上百实例源码以及开源项目源代码

     Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码...

    java开源包11

    JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 jActionScript jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。...

    java开源包6

    JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 jActionScript jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。...

    java开源包9

    JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 jActionScript jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。...

    java开源包101

    JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 jActionScript jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。...

    java开源包4

    JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 jActionScript jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。...

    java开源包5

    JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 jActionScript jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。...

    java开源包8

    JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 jActionScript jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。...

    java开源包10

    JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 jActionScript jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。...

    4位明文SHA_256加密破解。JAVA语言

    JAVA语言。暴力破解,4位ASCII码符号(包括数字字母符号)组成的明文。内含字典生成代码。

    secure-login:java中的散列密码示例

    安全登录使用 java 散列密码示例

    java开源包3

    JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 jActionScript jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。...

    java开源包1

    JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 jActionScript jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。...

    Java中4大基本加密算法解析

    简单的java加密算法有: BASE64 严格地说,属于编码格式,而非加密算法 MD5(Message Digest algorithm 5,信息摘要算法) SHA(Secure Hash Algorithm,安全...HMAC(Hash Message Authentication Code,散列消息鉴别码)

    javasm2源码-java-gm:Java语言国密基础库

    java sm2 源码 java-gm 基于BouncyCastle实现国密算法SM2、SM3、SM4的操作类,并验证与其他语言(NodeJS、Go)实现的国密库的互操作性。 Feature 功能支持列表 SM2功能 支持范围 Generate KeyPair 是 Derive public ...

Global site tag (gtag.js) - Google Analytics