1.所有對象的基類
Object 是類層次結構的根類。每個類都使用 Object 作為超類。所有對象(包括數(shù)組)都實現(xiàn)這個類的方法。
2.Object 的API
反射相關:
public final native Class<?> getClass();
//本地 final 方法 返回當前實例的實際類型的Class(描述類的類)的實
//對于如下代碼,返回值就可以理解了;
//另外容易誤解是因為錯誤的把super理解成擴展類對象所包含的基類的部分(這樣的理解是組合關系不是擴展關系)
//因為擴展類對象和基類對象沒有任何關系,是獨立的;具體參看http://www.lxweimin.com/p/e94c9e77eec5這個文章來矯正
super.getClass().getName()
比較相關:
public boolean equals(Object obj) {
return (this == obj);
}//如果擴展類沒有重寫本方法,則默認的比較的是地址;String 和基本類型包裝類均進行了重寫,比較的是內容。
多線程同步相關:
public final native void notify();//當前線程(持有本對象的鎖)隨機的激活阻塞在欲獲取本對象的鎖的線程隊列區(qū)中的一個線程機型執(zhí)行。
public final native void notifyAll();//激活全部
public final native void wait(long timeout) ;//持有本對象鎖的線程進入阻塞狀態(tài)timeout 個毫秒
標識相關:
public native int hashCode();
//返回一個對象的哈希值,
垃圾回收:
protected void finalize() ;//JVM保證在對象被回收時執(zhí)行的方法,一般由Java代碼生成的對象不用重寫,但是由其他語言生成的對象就需要重寫(這些對象可能不滿足GC的要求)