写出 java.lang.Object 类的九个常用方法

总结:

1. equals(Object obj):
- 作用:比较对象的地址值是否相等,如果子类重写该方法,则比较对象的内容是否相等。
- 参数:一个对象作为比较对象。
- 返回值:布尔值,表示对象是否相等。

2. hashCode():
- 作用:获取对象的哈希码,用于哈希表等数据结构的快速查找。通常在重写equals()方法时需要同时重写hashCode()方法,使得逻辑上相等的对象具有相等的哈希码。
- 返回值:整型,表示对象的哈希码。

3. toString():

- 作用:这个方法用于将对象转变成字符串的形式。通常在实现自定义类时,需要重写toString()方法,以便以自定义的方式输出对象的信息等操作。
- 返回值:字符串,表示对象的字符串形式。

4. public final native Class<?> getClass():

- 作用:这个方法用于获取对象所属的类的信息,返回对象所属的类的Class对象。可以通过该方法来获取类名、包名、修饰符等类相关的信息。
- 返回值:Class对象,表示对象所属的类。

5.protected void finalize() throws Throwable:
- 作用:这个方法是在垃圾回收过程中被调用的,它在对象被回收前执行,用于释放资源或执行一些清理操作。通常不建议在该方法中进行复杂的操作,因为不确定垃圾回收的时机和频率。对于回忆的处理方式
- 参数:无。
- 异常:可能抛出Throwable异常。

6.protected native Object clone() throws CloneNotSupportedException:
- 作用:这个方法用于创建并返回对象的一个副本,即克隆对象通常需要实现Cloneable接口,表示该类可以进行克隆的操作。在实现克隆方法时,需要考虑对象的深拷贝和浅拷贝的问题
- 返回值:拷贝后的对象。
- 异常:可能抛出CloneNotSupportedException异常。

7. public final void wait() throws InterruptedException:
- 作用:这个方法用于使当前线程进入等待状态直到被其他线程唤醒。。通常在多线程的场景下使用,可以实现线程之间的通信和同步
- 参数:无。
- 异常:可能抛出InterruptedException异常。

8. public final native void notify():
- 作用:这个方法用于唤醒在当前对象上调用wait()方法进行等待的单个线程。
- 参数:无。
- 返回值:无。

9public final native void notifyAll():
- 作用:这个方法用于唤醒在当前对象上调用wait()方法进行等待的所有线程。
- 参数:无。
- 返回值:无。

生活比喻:
假设有一个团队,其中每个成员都有自己的职责和特点。那么上述这些方法可以用以下方式进行比喻:
- equals()方法可以比喻为团队成员之间的相互比较。默认情况下,比较的是每个成员的地址值(转座位),但子类可以重写该方法来比较成员之间的内容(人)。
- hashCode()方法可以比喻为每个成员的昵称或独特标识(称号001)。通过hashCode()方法可以快速获取成员的标识,方便做索引或查找。
- toString()方法可以比喻为成员自我介绍的方式。将成员转换为字符串后,可以更好地展示成员的信息。
- getClass()方法可以比喻为成员的个人档案。通过该方法可以获取到成员所属的类,了解成员的背景和属性。
- finalize()方法可以比喻为团队成员离开团队前的一些准备工作。在成员被垃圾回收前,可以执行一些资源释放或清理的操作。
- clone()方法可以比喻为成员的复制或克隆效果。通过clone()方法可以创建一份成员的拷贝,使得团队中有多个相似的成员。

wait()方法可以比喻为团队成员在多线程环境中的等待功能。当一个成员需要等待某个条件满足时,可以调用wait()方法使自己处于等待状态,直到其他线程通过notify()或notifyAll()方法唤醒它。

notify()方法可以比喻为团队成员在多线程环境中的唤醒功能。当一个成员完成了某个任务或者某个条件满足时,可以调用notify()方法唤醒一个处于等待状态的成员,使其继续执行。

notifyAll()方法可以比喻为团队成员在多线程环境中唤醒所有等待线程的功能。当一个成员完成了某个任务或者某个条件满足时,可以调用notifyAll()方法唤醒所有处于等待状态的成员,使它们继续执行。

总结:

  • equals()方法用于比较对象的地址相等性,可以通过子类重写来比较对象的内容。
  • hashCode()方法用于获取对象的哈希码,用于快速查找和索引。
  • toString()方法用于将对象转换为字符串形式,展示对象的信息。
  • getClass()方法用于获取对象所属的类,了解对象的背景和属性。
  • finalize()方法用于在对象被垃圾回收前执行一些准备工作或资源释放操作。
  • clone()方法用于创建对象的拷贝或克隆。
  • wait()方法用于在多线程环境中使线程进入等待状态。
  • notify()方法用于在多线程环境中唤醒一个处于等待状态的线程。
  • notifyAll()方法用于在多线程环境中唤醒所有处于等待状态的线程。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值