隨筆

類加載簡(jiǎn)單說就是將編寫的類加載到j(luò)vm中,主要分為五個(gè)過程:
1.加載
將.class文件以二進(jìn)制的方式加載到內(nèi)存中,并且聲稱一個(gè)class對(duì)象,提供訪問類數(shù)據(jù)的接口。

2.驗(yàn)證
就是判斷類的二進(jìn)制流是不是符合虛擬機(jī)的格式。

3.準(zhǔn)備
給類變量設(shè)置初始值,并且分配內(nèi)存。

4.解析
將常量池中的符號(hào)引用變成直接引用。

5.初始化
給靜態(tài)變量賦值,執(zhí)行靜態(tài)代碼塊。

雙親委派機(jī)制:

  類加載有雙親加載,簡(jiǎn)單說就是每單需要加載類時(shí),子加載器都會(huì)讓父類先加載,最終由最高層級(jí)的啟動(dòng)類加載器來加載,當(dāng)父加載器找不到類時(shí),才會(huì)拋給子類,這個(gè)是防止出現(xiàn)加載混亂,因?yàn)楫?dāng)自己編寫一個(gè)跟系統(tǒng)一樣的類的時(shí)候,父類默認(rèn)會(huì)用系統(tǒng)的,而不至于出現(xiàn)不知道加載那一個(gè)的情況。
  當(dāng)然,這種模式也可以打破,要打破這種模式,需要自定義類加載器,并重寫findclass和loadclass方法,這里最重要的是findclass方法,因?yàn)槟J(rèn)都是交個(gè)父類執(zhí)行,這里重寫成由當(dāng)前類來找。關(guān)于為什么要打破這種機(jī)制,是因?yàn)槟J(rèn)走父類的邏輯,但是有些類是要用三方廠商,此時(shí)就需要打破這種機(jī)制。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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