总结:
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()方法用于在多线程环境中唤醒所有处于等待状态的线程。