• 哈希(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相等,也可能对象不相等,因为会产生冲突啊。

    根本不用记忆的

  • 相关阅读:
    7、猜年龄
    6、continue语句
    5、break语句
    4、while循环练习
    poj 2378
    poj 2342
    poj 2287
    poj 2228
    poj 1191
    srm 578 dv2 1000pt
  • 原文地址:https://www.cnblogs.com/hansongjiang/p/3828597.html
Copyright © 2020-2023  润新知