1. Object类有哪些核心方法?作用是什么?
- 答案:
-
equals(Object obj):比较对象内容是否相等(默认比较地址,需重写)。hashCode():返回对象哈希值,用于哈希表(如HashMap)。toString():返回对象字符串表示(默认类名@哈希值,建议重写)。wait()/notify()/notifyAll():线程间通信,需在同步代码块中使用。clone():创建对象副本,需实现Cloneable接口。getClass():返回对象的运行时类(反射基础)。finalize():垃圾回收前调用(已废弃,不建议使用)。
2. 为什么重写equals()时必须重写hashCode()?
- 答案:
根据约定,若两个对象equals()为true,它们的hashCode()必须相同。否则在使用哈希集合(如HashMap)时,对象可能无法正确检索。例如:两个相等的对象因哈希值不同被放入不同桶,导致逻辑错误。
3. == 和 equals() 的区别?
- 答案:
-
==:比较基本类型的值或对象的内存地址。equals():默认行为同==,但可重写为内容比较(如String类)。
4. wait()和sleep()的区别?
- 答案:
| wait() |
sleep() |
| 释放锁 |
不释放锁 |
| 属于Object类 |
属于Thread类 |
| 需在同步块中使用 |
任意位置调用 |
| 通过 |
时间到自动恢复 |
5. 如何实现对象的克隆(clone())?深拷贝与浅拷贝区别?
- 答案:
-
- 实现
- 实现


1万+

被折叠的 条评论
为什么被折叠?



