object类

object类

equals(Object obj)方法

用于比较两个对象的等价性。默认实现比较的是对象的内存地址,但通常需要重写这个方法以提供更有意义的比较逻辑。

@Override
public boolean equals(Object obj) {
    if (this == obj) return true;
    if (obj == null || getClass() != obj.getClass()) return false;
    MyClass that = (MyClass) obj;
    return Objects.equals(this.someField, that.someField);
}

hashCode()方法:

返回对象的哈希码值。通常与 equals 方法一起重写,以确保如果两个对象相等,它们必须有相同的哈希码。

@Override
public int hashCode() {
    return Objects.hash(someField1, someField2);
}

toString()方法

返回对象的字符串表示。默认实现返回对象的类名和哈希码的无符号十六进制表示。通常重写这个方法以提供更有用的信息。

@Override
public String toString() {
    return "MyClass{" +
           "someField='" + someField + '\'' +
           '}';
}

clone()方法

用于创建并返回对象的一个副本。Object 类的 clone() 方法是一个受保护的方法,需要在子类中重写并提供公共的访问。

@Override
protected Object clone() throws CloneNotSupportedException {
    return super.clone(); // 调用父类的 clone 方法
}

getClass()方法

返回对象的运行时类信息。这个方法可以用来获取对象的实际类型,即使对象是作为超类类型引用的。

Object obj = new MyClass();
Class<?> clazz = obj.getClass();
System.out.println(clazz.getName()); // 输出 MyClass

wait()和notify()方法

这些方法是线程同步的基础。wait() 使当前线程等待,直到另一个线程调用相同对象的 notify()notifyAll() 方法。

synchronized (this) {
    while (condition) {
        wait(); // 等待
    }
    // 条件满足后执行操作
}
posted @ 2024-08-01 12:51  wen-210162704027  阅读(2)  评论(0编辑  收藏  举报