Object類是一個特殊的類,是全部類的父類。它主要提供瞭如下11個方法:java
public final native Class<?> getClass() //native方法,用於返回當前運行時對象的Class對象,使用了final關鍵字修飾,故不容許子類重寫。 public native int hashCode() //native方法,用於返回對象的哈希碼,主要使用在哈希表中,好比JDK中的HashMap. public boolean equals(Object obj) //用於比較兩個對象的內存地址是否相等,String類對該方法進行了重寫用戶比較字符串的值是否相等。 protected native Object clone() throws CloneNotSupportedException //native方法,用於建立並返回當前對象的一份拷貝。通常狀況下,對於任何對象X,表達式x.clone() != x 爲true,x.clone().getClass() == x.getClass()爲true。object自己沒有實現Cloneable接口,因此不重寫clone方法而且進行調用的話會發生CloneNotSupportException異常。 public String toString() //返回類的名字@實例的哈希碼的16進制的字符串。建議Object全部的子類都重寫這個方法。 public final native void notify() //native方法,而且不能重寫。喚醒一個在此對象監視器上等待的線程(監視器至關於鎖的概念)。若是有多個線程在等待只會任意喚醒一個。 public final native void notifyAll() //native方法,而且不能重寫。跟notify同樣,惟一的區別就是會喚醒在此休想監視器上的全部線程。 public final native void wait()(long timeout) throws InterruptedException //native方法,而且不能重寫。暫停線程的執行。注意:sleep方法沒有釋放鎖,而wait方法釋放了鎖。timeout是等待時間。 public final void wait(long timeout, int nanos) throws InterruptedException//多了nanos參數, 這個參數表示額外時間(以毫微秒爲單位,範圍是 0-999999)。 因此超時的時間還須要加上nanos毫秒。 public final void wait() throws InterruptedException//跟以前的2個wait方法同樣,只不過該方法一直等 待,沒有超時時間這個概念 protected void finalize() throws Throwable { }//實例被垃圾回收器回收的時候觸發的操做