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

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。

相关推荐

疥骚的解释及意思

疥骚的解释及意思

📅 08-29 👁️ 6311
紫色金属是什么

紫色金属是什么

📅 08-04 👁️ 6713