本文主要是介绍[Java、Android面试]_10_Java中==与equal()方法的区别?重写equal()方法?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
==与equal()方法的区别?是一个高频考点,资料整理如下:
文章目录
- 1. "=="的介绍
- 2. .equal的介绍
本人今年参加了很多面试,也有幸拿到了一些大厂的offer,整理了众多面试资料,后续还会分享众多面试资料。
整理成了面试系列,由于时间有限,每天整理一点,后续会陆续分享出来,感兴趣的朋友可关注+收藏
1. "=="的介绍
如果是八种基本类型,则比较的是值是否相等;
如果是引用类型,比较的是地址是否相等;
2. .equal的介绍
(1).equal不能用于基本类型;
(2)如果是引用类型,比较的是地址;另外,有些会重写.equal()
方法,如String、Date,这时是比较的值是否相等。
(3)重写euqal方法
要确保 equals() 方法遵循传递性、自反性、对称性和一致性原则,即满足 a == b,b ==c,
则 a == c。
重写 equals() 方法时,通常也需要重写 hashCode() 方法,以保持对象在散列数据结
构中的正确行为。
如:
1.data class Person(val name: String, val age: Int) {
2. override fun equals(other: Any?): Boolean {
3. if (this === other) return true
4. if (other !is Person) return false
5.
6. return name == other.name && age == other.age
7. }
8. // 重写hashCode(),保持对象在散列结构中的正确行为。
9. override fun hashCode(): Int {
10. return 31 * name.hashCode() + age
11. }
12.}
在此示例中,equals() 方法根据 name 和 age 属性来判断两个 Person 对象是否相等,而 hashCode() 方法使用 name 的哈希码和 age 相加作为哈希码。
这篇关于[Java、Android面试]_10_Java中==与equal()方法的区别?重写equal()方法?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!