hashcode和equals方法

来源:互联网 发布:python中help 编辑:程序博客网 时间:2024/05/21 17:52
Object类中的equals方法默认是
public boolean equals(Object obj) {    return (this == obj);

}

可见默认的equals方法,直接调用==,比较对象地址。

默认情况下,Object中的hashCode() 返回对象的32位jvm内存地址

String类源码中重写的hashCode方法如下,

public int hashCode() {    int h = hash;    //Default to 0 ### String类中的私有变量,    if (h == 0 && value.length > 0) {    //private final char value[]; ### Sting类中保存的字符串内容的的数组,value中存储的字符串        char val[] = value;        for (int i = 0; i < value.length; i++) {            h = 31 * h + val[i];        }        hash = h;    }    return h;}

原创粉丝点击