一、简介
java.lang.Object类中有非常重要的两个方法:
public boolean equals(Object obj)
public int hashCode()
Object
类是类继承结构的基础,所以是每一个类的父类。所有的对象,包括数组,都实现了在Object
类中定义的方法。
Object类中equals方法的定义如下:
public boolean equals(Object obj) {
return (this == obj);
}
明显地,该函数定义是对两个对象的地址进行比较。
Object类中hashcode方法的定义如下:
public native int hashCode();
该函数定义说明它是一个本地方法,和本地机器有关。
二、总结
Java对象的eqauls方法和hashCode方法是这样规定的:
1、相等(相同)的对象必须具有相等的哈希码(或者散列码)。
2、如果两个对象的hashCode相同,它们并不一定相同。