1、“==”比较的是对象在栈中的引用地址的值是否相等。
2、equals方法,在objcet源码中是这样的:
public boolean equals(Object obj){
return (this==obj);
}
也是用的“==”,跟等号效果是一样的,但是许多java类中都重写了这个方法,比如String。在引用地址返回false后会继续做对象在内存中的地址的比较。
3、hashcode是返回对象的哈希值码,返回对象的存储地址的。所以equals相等那么hashcode一定相等,但是hashcode相等在没有重写equals的类相比较就不会相等。
搜索
复制