对于基础类型,如int,double…只能采用==进行比较,且比较的是数值
对于引用类型,可以采用==和equals进行比较,==比较的是两个引用的引用地址,及两个引用引用的是否为一个对象,而equals则是Object方法进行提供的,如果不进行重写,其比较的也是引用
Object中equals
ublic boolean equals(Object obj) {
return (this == obj);
}
其和==相同
当我们重写其以后,就可以按照我们的要求进行比较
和比较有关系的还有个方法叫做hashcode
equals和hashcode有以下的关系
1.equal()相等的两个对象他们的hashCode()肯定相等,也就是用equal()对比是绝对可靠的。
2.hashCode()相等的两个对象他们的equal()不一定相等,也就是hashCode()不是绝对可靠的。
因为hashcode可能存在碰撞