类 java.lang.Object
java.lang.Object
-
public class
Object
Object
类是类层次的根类。 每个类都把 Object
作为一个父类。 包含数组在内的全部对象均实现这个类的方法。
-
来自:
- JDK1.0 参见:
- Class
构造子索引
-
Object()
方法索引
-
clone()
- 创建与该对象的类相同的新对象。 equals(Object)
- 比较两对象是否相等。 finalize()
- 当垃圾回收器确定不存在对该对象的更多引用时,对象的垃圾回收器调用该方法。 getClass()
- 返回一个对象的运行时间类。 hashCode()
- 返回该对象的散列码值。 notify()
- 激活等待在该对象的监视器上的一个线程。 notifyAll()
- 激活等待在该对象的监视器上的全部线程。 toString()
- 返回该对象的字符串表示。 wait()
- 等待这个对象另一个更改线程的通知。 wait(long)
- 等待这个对象另一个更改线程的通知。 wait(long, int)
- 等待这个对象另一个更改线程的通知。
构造子
Objectpublic Object()
方法
getClasspublic final native Class getClass()
-
返回一个对象的运行时间类。
-
-
返回值:
-
对象类型为
Class
, 它表示该对象的运行时间类。
-
对象类型为
public native int hashCode()
-
返回该对象的散列码值。 该方法支持散列表的优点,如
java.util.Hashtable
提供的散列表。hashCode
的一般合同是:- 不管一个 Java 应用程序调用它多少次,
hashCode
方法始终返回同一个整数。 当同一应用程序从一个执行转到另一个执行时,该整数不必保持一致。 - 如果两个对象按照
equals
方法相等, 那么每个对象调入hashCode
方法必须产生相同的整数结果。
- 不管一个 Java 应用程序调用它多少次,
public boolean equals(Object obj)
-
比较两对象是否相等。
equals
方法实现一个等价关系:- 自反性 : 对任何参考值
x
,x.equals(x)
应返回true
。 - 对称性 : 对任何参考值
x
和y
,x.equals(y)
应返回true
当且仅当y.equals(x)
返回true
。 - 传递性 : 对任何参考值
x
、y
和z
,如果x.equals(y)
返回true
并且y.equals(z)
返回true
, 那么x.equals(z)
应返回true
。 - 一致性 :对任何参考值
x
和y
, 多次调用x.equals(y)
始终返回true
或始终返回false
。 - 对任何参考值
x
,x.equals(null)
应返回false
。
Object
类的相同方法可以实现对象间的最容易识别的可能等价关系。也就是说,对任何参考值x
和y
, 当且仅当x
和y
指向同一个对象(x==y
的值为true
)时, 该方法返回true
。 - 自反性 : 对任何参考值
protected native Object clone() throws CloneNotSupportedException
-
创建与该对象的类相同的新对象。 然后初始化新建对象域,对应域指定为相同的值。 没有调用构造子。
当一个对象指示愿意复制它的实例时,
Object
类的clone
方法才复制该对象。 当一个类声明它实现cloneable
接口时,能复制它的实例。 -
-
返回值:
- 该实例的复制。 抛出: CloneNotSupportedException
-
如果该对象类不支持
cloneable
接口。覆盖了clone
方法的子类可能抛出此异常,表示不能复制实例。
抛出:
OutOfMemoryError
- 如果没有足够内存。 参见:
- Cloneable
public String toString()
-
返回该对象的字符串表示。
toString
方法一般返回一个用文本表示这个对象的字符串。 给出的结果是简短明了的表示,这样便于人们读取。 建议任何子类都覆盖这个方法。类
Object
的toString
方法返回一个字符串、有符号 `@
' 字符和该对象的无符号十六进制散列码表示,这里的字符串包括实例对象的类名。 -
-
返回值:
- 该对象的字符串表示。
public final native void notify()
-
激活等待在该对象的监视器上的一个线程。 线程通过调用
wait
方法等候在某个对象的监视器中。只有该对象监视器的拥有者线程才能调用这个方法。 在下列三种情况下,一个线程变为该对象监视器的所有者:
- 同步执行该对象的实例方法。
- 执行与该对象的
synchronized
语句体对该对象进行同步。 - 对类型为
Class,
的对象执行该类的同步静态方法。
一次只能有一个线程拥有对象的监视器。
-
-
抛出:
IllegalMonitorStateException
- 若当前线程不是这个对象监视器的所有者。 参见:
- notifyAll, wait
public final native void notifyAll()
-
激活等待在该对象的监视器上的全部线程。 线程通过调用
wait
方法等候在某个对象的监视器中。只有该对象监视器的拥有者线程才能调用这个方法。 参见
notify
方法,那里有线程如何成为监视器所有者的说明。 -
-
抛出:
IllegalMonitorStateException
- 若当前线程不是这个对象监视器的所有者。 参见:
- notify, wait
public final native void wait(long timeout) throws InterruptedException
-
等待该对象另一更改线程的通知。
当前线程必须拥有该对象的监视器。线程释放对该监视器的所有权,一直等到以下两个条件之一发生:
- 通过调用
notify
方法或notifyAll
方法激活,另一个线程通知等候在该对象监视器上的线程。 - 毫秒表示的
timeout
参数指定的超时时间已用完。
该线程将等到重新获得对监视器的所有权后才能继续执行。
只有该对象监视器的所有者线程才能调用该方法。 参见
notify
方法,那里有线程如何拥有监视器的方法说明。 - 通过调用
-
-
参数:
- timeout - 用毫秒计算的超时。 抛出: IllegalArgumentException
- 如果超时值为负。 抛出: IllegalMonitorStateException
- 若当前线程不是这个对象监视器的所有者。 抛出: InterruptedException
- 如果另一个线程已中断了该线程。 参见:
- notify, notifyAll
public final void wait(long timeout, int nanos) throws InterruptedException
-
等待该对象另一个更改线程的通知。
该方法类似于一个参数的
wait
方法,但它允许在放弃之前对同级件待时间量进行更细致的控制。当前线程必须占有这个对象的监视器。线程释放对这个监视器的所有权,一直等到以下两个条件之一发生:
- 通过调用
notify
方法或notifyAll
方法激活,另一个线程通知等候在这个对象监视器上的线程。 timeout
毫秒值与nonos
参数值之和指定的超时时间已用完。
该线程将等到重新获得对监视器的所有权后才能继续执行。
只有该对象监视器的拥有者线程才能调用这个方法。 参见
notify
方法,那里有线程如何占有监视器的方法说明。 - 通过调用
-
-
参数:
- timeout - 用毫秒计算的超时。
- nano - 附加时间,纳秒范围为 0-999999。 抛出: IllegalArgumentException
- 若超时值为负或 nanos 的值不在范围0-999999中。 抛出: IllegalMonitorStateException
- 若当前线程不是这个对象监视器的所有者。 抛出: InterruptedException
- 如果另一个线程已中断了该线程。
public final void wait() throws InterruptedException
-
等待该对象另一个更改线程的通知。
当前线程必须拥有该对象的监视器。通过调用
notify
方法或notifyAll
方法激活,该线程释放这个监视器的所有权并等待,直到另一个线程通知激活等候在这个对象监视器上的线程。 该线程将等到重新获得对监视器的所有权后才能继续执行。只有该对象监视器的拥有者线程才能调用这个方法。 参见
notify
方法,那里有线程如何拥有监视器的方法说明。 -
-
抛出:
IllegalMonitorStateException
- 若当前线程不是这个对象监视器的所有者。 抛出: InterruptedException
- 如果另一个线程已中断了该线程。 参见:
- notify, notifyAll
protected void finalize() throws Throwable
-
当垃圾回收器确定不存在对该对象的更多引用时,对象的垃圾回收器调用该方法。 子类覆盖
finalize
方法,以配置系统资源进行其它清除。finalize
方法抛出的任何异常导致暂停对象终止,但被其它对象忽略。Object
中的finialize
方法不执行任何操作。 -
-
抛出:
Throwable
- [Need description!]