JDK源碼解讀1.Object類型

1.private static native void registerNatives():當(dāng)該類被加載時(shí),注冊該類中相應(yīng)的本地方法,本地方法是聯(lián)系Java程序和底層主機(jī)操作系統(tǒng)的連接方法。

2.public final native Class?getClass():返回Class類型的描述類。

3.public boolean equals(Object obj):方法是用來判斷其他的對象是否和該對象相等.Object是判斷指針是否相等,一般會被其他類覆寫,如String,Integer;

4.hashCode()方法給對象返回一個(gè)hash code值。這個(gè)方法被用于hash tables,例如HashMap。hashCode方法實(shí)際上返回的就是對象存儲的物理地址(實(shí)際不一定是)。簡而言之,在集合查找時(shí),hashcode能大大降低對象比較次數(shù),提高查找效率!

5.protected native Object clone():將對象進(jìn)行復(fù)制,子類要使用這個(gè)方法必須要使用cloneAble的接口,并重寫clone方法;

6.public String toString():返回當(dāng)前對象的簡潔但信息豐富的表示

7.public final native void notify(): 喚醒一個(gè)正在當(dāng)前對象監(jiān)視屏(monitor)中正在等待的線程,隨機(jī)將一個(gè)線程從等待池放入鎖池中;

8.public final native void notifyAll():喚醒所有正在當(dāng)前對象監(jiān)視屏(monitor)中正在等待的線程,將這些線程從等待池放入鎖池中,進(jìn)行競爭;

9.public final native void wait(long timeout):觸發(fā)當(dāng)前線程等待,直到其他線程執(zhí)行notify或者notifyAll方法時(shí),或者其他線程中斷,或者timeout大概到時(shí)間(這個(gè)timeout只能是讓當(dāng)前線程進(jìn)入鎖區(qū),至于執(zhí)不執(zhí)行需要和在鎖區(qū)的其他線程進(jìn)行爭奪優(yōu)先級)

10.public final void wait(long timeout, int nanos) 這個(gè)和上面函數(shù)很類似,可以設(shè)置等待時(shí)間精確到微秒;

11.public final void wait():等于wait(0),沒有等待時(shí)間,只能其他線程執(zhí)行notify或者notifyall

12.protected void finalize()throws Throwable: 垃圾回收器認(rèn)為沒有對當(dāng)前對象引用時(shí),執(zhí)行該方法進(jìn)行垃圾回收;一般不建議覆寫finalize方法,如果覆寫,會導(dǎo)致創(chuàng)建和回收更困難,因?yàn)閯?chuàng)建的時(shí)候會相應(yīng)的創(chuàng)建Finalizer 對象,使用場景有數(shù)據(jù)庫連接忘記關(guān)閉,可以在Connection#finalize()中使用close進(jìn)行關(guān)閉;

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容