关于hashCode方法

作者: JUNE言JUNE语 | 来源:发表于2016-11-14 00:36 被阅读8次

    在编程过程中应该有很多时候使用过很多的hashCode函数,今天就来尝试深究一下。

    1.Object

    public native int hashCode();
    

    Object的hashCode是一个native方法
    返回的是该对象的<b>地址值</b>。
    一般情况下,为了更好的使用hashCode这个方法,很多类都会重写这个方法。

    2.String

    public int hashCode() {
        int h = hash;
        if (h == 0 && value.length > 0) {
            char val[] = value;
    
            for (int i = 0; i < value.length; i++) {
                h = 31 * h + val[i];
            }
            hash = h;
        }
        return h;
    }
    

    一个简单的说明:String中有一个私有属性hash用于存储该对象的hash值,初次调用时初始化,之后调用则直接返回hash

    关于为什么取31为权,可以参考StackOverflow上的这个问题
    //感觉程序员英语差真心活不下去,还是要好好恶补英语。
    关于Java中String类的hashCode方法这篇博文中大概用中文解释了一下。

    相关文章

      网友评论

        本文标题:关于hashCode方法

        本文链接:https://www.haomeiwen.com/subject/acbcpttx.html