==和equals()有什么区别

版权声明:尊重原创 https://blog.csdn.net/qq_40163092/article/details/89670989

1.基本数据类型和引用数据类型==的比较作用效果是不同的
1)基本数据类型 = =比较的是值是相同
2)引用数据类型 = =比较的是引用的地址是都相同
2.equals()本质上还是= = 只是很多类重写了equals()方法
1)equals()默认使用的是引用比较,只是很多类重写了equals()让其变成了值比较,所以通常情况下equals()是值比较

3.两个对象的hashCode()相等 那么equals()一定为true吗?
hashCode()相等不一定为true,因为在散列表中,hashCode() 相等即两个键值对的哈希值相等,然而哈希值相等,并不一定能得出键值对相等。

猜你喜欢

转载自blog.csdn.net/qq_40163092/article/details/89670989