zoukankan      html  css  js  c++  java
  • 哈希(3) java中的hashcode

    看看jdk api中对object类的描述

    1.http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html

    2首先你要知道每个对象都有一个hashcode,是int了类型的,可能不同的对象的会有相同的hashcode(冲突),所以判断两个对象是否相等要通过equals方法,跟上文中的hash索引思路是一致。

    3.其次hash是快速查找的,查找什么呢?查找对象,在我们的程序中会有大量的对象,当然需要快速的查找了。

    4。我们看看对象头,对于一个普通对象头的长度是2个字,数组是3个字,为什么多一个呢?第三个字,存的是数组的长度,在c++ 要传递数组的长度,但是 java就不用啊,因为对象自己保存.我们看看这个对象的头,还会看到一些线程相关的信息,垃圾回收相关的信息。以后慢慢看,

    http://www.cnblogs.com/mengheng/p/3491304.html

    5.最后,就是equals和hashcode之间的关系,这是经典的问题?

    两个对象相等意思是:   对象1.equals(对象2)==true;

    相等的对象hashcode一定是相等的。

    所以  equals  ----推出-----   hashcode相等

    同时因为hashcode相等,也可能对象不相等,因为会产生冲突啊。

    根本不用记忆的

  • 相关阅读:
    HTML5标签变化
    接口测试基础入门学习
    1.1Axure简介
    win 7命令行大全
    程序集强签名
    源代码的文件头格式化
    redmine2.3环境搭建
    静态成员和方法的使用场合及利弊分析
    .Net Memory Profiler入门
    TransactionScope类
  • 原文地址:https://www.cnblogs.com/hansongjiang/p/3828597.html
Copyright © 2011-2022 走看看