1、对于值对象,==比较的是两个对象的值
2、对于引用对象,比较的是两个对象的地址
一、equals()方法
public boolean equals(Object obj) {
return (this == obj);
}
” == “:用来判断两个对象是否是同一个对象,也就是通过比较两个对象的内存地址是否相同判断是否是同一个对象
二、hashcode()方法
根据hashCode方法上面的注释得到以下3点:
1、同一个对象反复调用hashCode方法,返回的结果都是一致的。(前提是这个对象没被修改过)
2、如果使用equals方法比较得到两个对象相等,那么这两个对象去调用hashCode方法返回的值是相等的
3、两个对象的hashCode值相等,两个对象不一定相等
总结
1、默认的equals()方法比较的是内存地址
2、而默认的hashCode()方法返回的是对象的内存地址转换成的一个整数,实际上指的的也是内存,两个方法可以理解为比较的都是内存地址。
理解尚浅,仍得继续努力
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。