一切三方都是不可信的, 我们首先了解官方的最终语法解释
- == 和 equals 的区别是什么官方说明
一般而言 == 的使用场景是基本值比较(int/char/double/string等); 如果包装类型使用的话,一般比较的就是堆内存地址. 所有new出来的两个对象, 堆内存地址肯定是不同的.
equal则是上述 ==无法解决的场景中.
- 两个对象的 hashCode()相同,则 equals()也一定为 true?官方说明
在散列表中,hashCode()相等即两个键值对的哈希值相等,然而哈希值相等,并不一定能得出键值对相等; 这个是必要不充分条件.