Java的 Object
类是所有类的父类,提供了一些基本的方法,这些方法可以被所有子类继承和重写。下面是 Object
类的一些基本方法及其作用:
1. equals(Object obj)
作用:比较两个对象是否相等。默认实现是比较对象的引用,即 this == obj
。
重写:许多类会重写这个方法以比较对象的内容。
2. hashCode()
作用:返回对象的哈希码。默认实现是基于对象的内存地址计算的。
重写:当重写 equals
方法时,通常也需要重写 hashCode
方法,以确保相等的对象具有相同的哈希码。
3. toString()
作用:返回对象的字符串表示。默认实现是返回类的名字、一个 @
符号和对象的哈希码的十六进制表示。
重写:通常会重写这个方法以提供对象的更有意义的字符串表示。
4. clone()
作用:创建并返回对象的一个副本。默认实现是浅拷贝。
使用:需要实现 Cloneable
接口,否则会抛出 CloneNotSupportedException
。
5. finalize()
作用:在垃圾回收器回收对象之前调用。用于清理资源。
注意:从Java 9开始,finalize
方法已被弃用,不推荐使用。
6. getClass()
作用:返回对象的运行时类。返回的 Class
对象表示对象的类。
7. notify()
, notifyAll()
, wait()
作用:
notify()
:唤醒在此对象监视器上等待的单个线程。notifyAll()
:唤醒在此对象监视器上等待的所有线程。wait()
:让当前线程等待,直到另一个线程调用此对象的notify()
或notifyAll()
方法。
使用:这些方法用于线程间通信,必须在同步代码块或方法中调用。
总结
Object
类提供了一组基础方法,这些方法在Java中扮演着重要的角色。正确理解和重写这些方法对于编写健壮和可维护的代码非常重要。特别是 equals
和 hashCode
方法,在涉及对象比较和哈希表操作时,重写它们显得尤为关键。