版权声明:转载请注明出处。 https://blog.csdn.net/bagpiping/article/details/84313700
在Java顶级类 Object 中有这么两个方法,
public class Object{
public boolean equals(Object obj) {
return (this == obj);
}
public native int hashCode();
}
- equals和hashCode方法被许多的类重写(甚至还有toString方法)
- equals方法通过 == 比较两个对象的内存地址是否一致,以此来判断两个对象是不是同一个
- hashCode方法返回int型,而且是本地方法,集合框架中底层利用了哈希表的类都用到hashcode
- Java中,字符串和数值类型的类中都重写了equals,两者都不同程度的使用了缓存技术优化内存结构