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。

浙公网安备 33010602011771号