Java 中 Object 所有常用方法的示例代码和每个方法对应的输出 解释。

Java Object 类常用方法详解

Java 中所有类的父类 Object 提供了多个通用方法,以下是最常见的 11 个方法及其用途和示例。


1. protected Object clone()

创建并返回一个对象的拷贝。

class Person implements Cloneable {
    String name = "Tom";
    public Object clone() throws CloneNotSupportedException {
        return super.clone();
    }
}

Person p1 = new Person();
Person p2 = (Person) p1.clone();
System.out.println(p2.name);  // 输出:Tom

2. boolean equals(Object obj)

比较两个对象是否相等。

String a = new String("hello");
String b = new String("hello");
System.out.println(a.equals(b));  // 输出:true

3. protected void finalize()

对象被垃圾回收器回收前调用此方法。

class Demo {
    protected void finalize() {
        System.out.println("对象被回收");
    }
}

new Demo();
System.gc();  // 显示调用 GC,输出:对象被回收(不一定立即)

4. Class<?> getClass()

返回对象运行时的类信息。

String str = "Java";
System.out.println(str.getClass());  // 输出:class java.lang.String

5. int hashCode()

返回对象的 hash 值。

String str = "Java";
System.out.println(str.hashCode());  // 示例输出:2301506(每次运行可能不同)

6. void notify()

唤醒在该对象上等待的某一个线程。

synchronized(obj) {
    obj.notify();  // 唤醒等待 obj 的某个线程
}

7. void notifyAll()

唤醒在该对象上等待的所有线程。

synchronized(obj) {
    obj.notifyAll();  // 唤醒所有等待 obj 的线程
}

8. String toString()

返回对象的字符串表示形式。

Person p = new Person();
System.out.println(p.toString());  // 输出类似:Person@15db9742

9. void wait()

让当前线程等待直到被唤醒。

synchronized(obj) {
    obj.wait();  // 当前线程挂起等待
}

10. void wait(long timeout)

在指定时间内等待。

synchronized(obj) {
    obj.wait(1000);  // 最多等待 1 秒
}

11. void wait(long timeout, int nanos)

指定等待的毫秒和额外纳秒数。

synchronized(obj) {
    obj.wait(1000, 500);  // 等待 1 秒 + 500 纳秒
}

说明: wait()notify() 等方法必须在 synchronized 块中使用,否则会抛出 IllegalMonitorStateException

posted @ 2025-08-02 17:38  AlphaGeek  阅读(25)  评论(0)    收藏  举报