Java Object 类的常用方法及其含义

1 个回答

  • 北宫倩影
    提升自己比迎合别人要有用的多。
    ### Java `Object` 类的常用方法及其含义 `java.lang.Object` 是所有类的根类,所有类和数组都继承自 `Object`,因此每个对象都可以使用 `Object` 的方法。以下是 `Object` 类中的常用方法及其含义: #### 1. `clone` 方法 - **定义**:`protected Object clone() throws CloneNotSupportedException` - **含义**:实现对象的浅复制。只有实现了 `Cloneable` 接口的类才可以调用该方法,否则会抛出 `CloneNotSupportedException` 异常。深拷贝需要实现 `Cloneable` 接口,并在类的成员变量为引用类型时也需要实现 `Cloneable`,然后重写 `clone` 方法。 #### 2. `finalize` 方法 - **定义**:`protected void finalize() throws Throwable` - **含义**:该方法与垃圾收集器有关,是对象被垃圾回收前最后调用的方法。可以在这个方法中释放资源。但是,`finalize` 方法不推荐使用,因为垃圾收集的行为是不确定的。 #### 3. `equals` 方法 - **定义**:`public boolean equals(Object obj)` - **含义**:用于判断两个对象是否相等。默认实现是比较对象的引用是否相同,即 `==` 操作符的效果。子类通常会重写这个方法来实现自定义的相等逻辑。 #### 4. `hashCode` 方法 - **定义**:`public int hashCode()` - **含义**:返回对象的哈希码值,用于哈希查找。重写 `equals` 方法时通常也需要重写 `hashCode` 方法。两个对象相等 (`equals` 返回 `true`) 必须有相同的哈希码值,但哈希码相同的对象不一定相等。 #### 5. `wait` 方法 - **定义**: - `public final void wait() throws InterruptedException` - `public final void wait(long timeout) throws InterruptedException` - `public final void wait(long timeout, int nanos) throws InterruptedException` - **含义**:使当前线程等待,直到其他线程调用此对象的 `notify` 或 `notifyAll` 方法,或者等待超时。必须在同步块或同步方法中调用。 #### 6. `notify` 方法 - **定义**:`public final void notify()` - **含义**:唤醒在此对象上等待的单个线程。必须在同步块或同步方法中调用。 #### 7. `notifyAll` 方法 - **定义**:`public final void notifyAll()` - **含义**:唤醒在此对象上等待的所有线程。必须在同步块或同步方法中调用。 #### 8. `toString` 方法 - **定义**:`public String toString()` - **含义**:返回对象的字符串表示,默认实现返回对象的类名和哈希码值。子类通常会重写这个方法来提供有意义的字符串表示。 #### 9. `getClass` 方法 - **定义**:`public final Class<?> getClass()` - **含义**:返回对象的运行时类信息。 ### 总结 - **Object** 是所有类的父类,所有对象都实现了 `Object` 的方法。 - 常用方法包括:`clone`、`finalize`、`equals`、`hashCode`、`wait`、`notify`、`notifyAll`、`toString`、`getClass`。 - 了解这些方法及其含义有助于更好地理解和使用 Java 的基础功能。
    发布于 2024-06-26 13:36 •IP属地 天津
    举报
    评论
    收藏1