Java源代碼閱讀——Object類

一 概述

Object是類層次結構的根類。每個類都使用object作爲超類。所有對象(包括數組)都實現這個類的方法。

二 構造方法

Object();

三 方法

(1)

private static native void registerNatives();
    static {
        registerNatives();
    }
本地方法,static表示該類再初始化時執行該代碼塊,完成本地註冊。

(2) 

public final native Class<?> getClass();

本地方法,返回此 Object 的運行時類。

(3)

public native int hashCode();

本地方法,針對不同的對象返回不同的整數,一般是通過將該對象的內部地址轉換成一個整數來實現的。

(4)

public boolean equals(Object obj) {
        return (this == obj);
    }
自反性,傳遞性,對稱性,一致性,非空引用值xx.equals(null)應返回 false。、

(5)

protected native Object clone() throws CloneNotSupportedException;

本地方法,Object 類本身不實現接口 Cloneable,所以在類爲 Object 的對象上調用 clone 方法將會導致在運行時拋出異常。

(6)

public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }
(7)

public final native void notify();

本地方法,喚醒在此對象監視器上等待的單個線程。如果所有線程都在此對象上等待,則會選擇喚醒其中一個線程。選擇是任意性的,並在對實現做出決定時發生。

(8)

public final native void notifyAll();

本地方法,喚醒在此對象監視器上等待的所有線程。線程通過調用其中一個 wait 方法,在對象的監視器上等待。

(9)

public final native void wait(long timeout) throws InterruptedException;

在其他線程調用此對象的 notify() 方法或 notifyAll() 方法,或者超過指定的時間量前,導致當前線程等待。

另有其他兩個重載形式。

(10)

protected void finalize() throws Throwable { }

當垃圾回收器確定不存在對該對象的更多引用時,由對象的垃圾回收器調用此方法。子類重寫 finalize 方法,以配置系統資源或執行其他清除。





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章