转自http://lavasoft.blog.51cto.com/62575/15456/
java.lang
类 Object
java.lang.Object
public class Object
-
从以下版本开始:
- JDK1.0 另请参见:
-
Class
| 构造方法摘要 | |
|---|---|
Object() | |
| 方法摘要 | |
|---|---|
protected Object | clone() 创建并返回此对象的一个副本。 |
boolean | equals(Object obj) 指示某个其他对象是否与此对象“相等”。 |
protected void | finalize() 当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。 |
Class<? extendsObject> | getClass() 返回一个对象的运行时类。 |
int | hashCode() 返回该对象的哈希码值。 |
void | notify() 唤醒在此对象监视器上等待的单个线程。 |
void | notifyAll() 唤醒在此对象监视器上等待的所有线程。 |
String | toString() 返回该对象的字符串表示。 |
void | wait() 导致当前的线程等待,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法。 |
void | wait(long timeout) 导致当前的线程等待,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者超过指定的时间量。 |
void | wait(long timeout, int nanos) 导致当前的线程等待,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者其他某个线程中断当前线程,或者已超过某个实际时间量。 |
| 构造方法详细信息 |
|---|
Object
public Object()
| 方法详细信息 |
|---|
getClass
public final Class<? extends Object> getClass()
- 返回一个对象的运行时类。该 Class 对象是由所表示类的 static synchronized 方法锁定的对象。
-
-
返回:
-
表示该对象的运行时类的
java.lang.Class对象。此结果属于类型Class<? extends X>,其中 X 表示清除表达式中的静态类型,该表达式调用getClass。
-
表示该对象的运行时类的
hashCode
public int hashCode()
-
返回该对象的哈希码值。支持该方法是为哈希表提供一些优点,例如,
java.util.Hashtable提供的哈希表。- 在 Java 应用程序执行期间,在同一对象上多次调用 hashCode 方法时,必须一致地返回相同的整数,前提是对象上 equals 比较中所用的信息没有被修改。从某一应用程序的一次执行到同一应用程序的另一次执行,该整数无需保持一致。
- 如果根据 equals(Object) 方法,两个对象是相等的,那么在两个对象中的每个对象上调用
hashCode方法都必须生成相同的整数结果。 - 以下情况不 是必需的:如果根据
equals(java.lang.Object)方法,两个对象不相等,那么在两个对象中的任一对象上调用 hashCode 方法必定会生成不同的整数结果。但是,程序员应该知道,为不相等的对象生成不同整数结果可以提高哈希表的性能。
-
-
返回:
- 此对象的一个哈希码值。 另请参见:
-
equals(java.lang.Object),Hashtable
equals
public boolean equals(Object obj)
-
指示某个其他对象是否与此对象“相等”。
- 自反性:对于任何非空引用值
x,x.equals(x)都应返回true。 - 对称性:对于任何非空引用值
x和y,当且仅当y.equals(x)返回true时,x.equals(y)才应返回true。 - 传递性:对于任何非空引用值
x、y和z,如果x.equals(y)返回true,并且y.equals(z)返回true,那么x.equals(z)应返回true。 - 一致性:对于任何非空引用值
x和y,多次调用 x.equals(y) 始终返回true或始终返回false,前提是对象上equals比较中所用的信息没有被修改。 - 对于任何非空引用值
x,x.equals(null)都应返回false。
- 自反性:对于任何非空引用值
-
-
参数:
-
obj- 要与之比较的引用对象。
返回:
-
如果此对象与 obj 参数相同,则返回
true;否则返回false。
另请参见:
-
hashCode(),Hashtable
-
clone
protected Object clone() throws CloneNotSupportedException
-
创建并返回此对象的一个副本。“副本”的准确含义可能依赖于对象的类。一般来说,对于任何对象
x,如果表达式:
是正确的,则表达式:x.clone() != x
将为 true,但这些不是绝对条件。一般情况下是:x.clone().getClass() == x.getClass()
将为 true,但这不是绝对条件。x.clone().equals(x)
-
-
返回:
- 此实例的一个克隆。 抛出:
-
CloneNotSupportedException- 如果对象的类不支持Cloneable接口,则重写clone方法的子类也会抛出此异常,以指示无法克隆某个实例。
另请参见:
-
Cloneable
toString
public String toString()
-
返回该对象的字符串表示。通常,
toString方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂。建议所有子类都重写此方法。getClass().getName() + '@' + Integer.toHexString(hashCode())
-
-
返回:
- 该对象的字符串表示形式。
notify
public final void notify()
-
唤醒在此对象监视器上等待的单个线程。如果所有线程都在此对象上等待,则会选择唤醒其中一个线程。选择是任意性的,并在对实现做出决定时发生。线程通过调用其中一个
wait方法,在对象的监视器上等待。- 通过执行此对象的同步 (Sychronized) 实例方法。
- 通过执行在此对象上进行同步的
synchronized语句的正文。 - 对于
Class类型的对象,可以通过执行该类的同步静态方法。
-
-
抛出:
-
IllegalMonitorStateException- 如果当前的线程不是此对象监视器的所有者。
另请参见:
-
notifyAll(),wait()
-
notifyAll
public final void notifyAll()
-
唤醒在此对象监视器上等待的所有线程。线程通过调用其中一个
wait方法,在对象的监视器上等待。 -
-
抛出:
-
IllegalMonitorStateException- 如果当前的线程不是此对象监视器的所有者。
另请参见:
-
notify(),wait()
-
wait
public final void wait(long timeout) throws InterruptedException
-
导致当前的线程等待,直到其他线程调用此对象的
notify()方法或notifyAll()方法,或者超过指定的时间量。- 其他某个线程调用此对象的 notify 方法,并且线程 T 碰巧被任选为被唤醒的线程。
- 其他某个线程调用此对象的 notifyAll 方法。
- 其他某个线程
中断线程 T。 - 已经到达指定的实际时间。但是,如果 timeout 为零,则不考虑实际时间,该线程将一直等待,直到获得通知。
synchronized (obj) { while (<condition does not hold>) obj.wait(timeout); ... // Perform action appropriate to condition }(有关这一主题的更多信息,请参阅 Doug Lea 撰写的《Concurrent Programming in Java (Second Edition)》(Addison-Wesley, 2000) 中的第 3.2.3 节或 Joshua Bloch 撰写的《Effective Java Programming Language Guide》(Addison-Wesley, 2001) 中的第 50 项。 -
-
参数:
-
timeout- 要等待的最长时间(以毫秒为单位)。
抛出:
-
IllegalArgumentException- 如果超时值为负。 -
IllegalMonitorStateException- 如果当前的线程不是此对象监视器的所有者。 -
InterruptedException- 如果在当前线程等待通知之前或者正在等待通知时,另一个线程中断了当前线程。在抛出此异常时,当前线程的 中断状态 被清除。
另请参见:
-
notify(),notifyAll()
-
wait
public final void wait(long timeout, int nanos) throws InterruptedException
-
导致当前的线程等待,直到其他线程调用此对象的
notify()方法或notifyAll()方法,或者其他某个线程中断当前线程,或者已超过某个实际时间量。1000000*timeout+nanos
- 其他线程通过调用
notify方法,或notifyAll方法通知在此对象的监视器上等待的线程醒来。 timeout毫秒值与nanos毫微秒参数值之和指定的超时时间已用完。
synchronized (obj) { while (<condition does not hold>) obj.wait(timeout, nanos); ... // Perform action appropriate to condition }此方法只应由作为此对象监视器的所有者的线程来调用。请参阅notify方法,了解线程能够成为监视器所有者的方法的描述。 - 其他线程通过调用
-
-
参数:
-
timeout- 要等待的最长时间(以毫秒为单位)。 -
nanos- 额外时间(以毫微秒为单位,范围是 0-999999)。
抛出:
-
IllegalArgumentException- 如果超时值是负数,或者毫微秒值不在 0-999999 范围内。 -
IllegalMonitorStateException- 如果当前线程不是此对象监视器的所有者。 -
InterruptedException- 如果在当前线程等待通知之前或者正在等待通知时,其他线程中断了当前线程。在抛出此异常时,当前线程的 中断状态 被清除。
-
wait
public final void wait() throws InterruptedException
-
导致当前的线程等待,直到其他线程调用此对象的
notify()方法或notifyAll()方法。换句话说,此方法的行为就好像它仅执行 wait(0) 调用一样。synchronized (obj) { while (<condition does not hold>) obj.wait(); ... // Perform action appropriate to condition }此方法只应由作为此对象监视器的所有者的线程来调用。请参阅notify方法,了解线程能够成为监视器所有者的方法的描述。 -
-
抛出:
-
IllegalMonitorStateException- 如果当前的线程不是此对象监视器的所有者。 -
InterruptedException- 如果在当前线程等待通知之前或者正在等待通知时,另一个线程中断了当前线程。在抛出此异常时,当前线程的 中断状态 被清除。
另请参见:
-
notify(),notifyAll()
-
finalize
protected void finalize() throws Throwable
-
当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。子类重写
finalize方法,以配置系统资源或执行其他清除。 -
-
抛出:
-
Throwable- 此方法抛出的Exception
-
本文深入介绍了Java中的Object类,探讨了其作为所有Java类的基础类的重要性,并详细解释了Object类中的核心方法,如equals()、toString()、clone()等。
1963

被折叠的 条评论
为什么被折叠?



