java基础之object、string

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类

需在同步块中使用

任意位置调用

通过notify()唤醒

时间到自动恢复


5. 如何实现对象的克隆(clone())?深拷贝与浅拷贝区别?

  • 答案
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值