Java基础
1. equals() 和 == 的区别?如何正确重写 equals() 和 hashCode() 方法?为什么需要同时重写?
== 和 equals() 的区别
- == 操作符:对于基本数据类型比较值,对于引用类型比较内存地址
- equals() 方法:Object类默认实现是比较引用,String等类重写后比较内容
正确重写的五个原则
- 自反性:x.equals(x) 必须返回 true
- 对称性:x.equals(y) 和 y.equals(x) 结果相同
- 传递性:如果 x.equals(y) 且 y.equals(z),则 x.equals(z)
- 一致性:多次调用结果一致
- 非空性:x.equals(null) 返回 false
2025年7月27日大约 161 分钟