在父親委託機制中,各個載入器按照父子關係形成了樹形結構,除了根類載入器之外,其餘類載入器都有且只有乙個父載入器
通俗理解: 某乙個類載入器載入乙個特定的類,他並不是立即由自己載入了,而是將這個動作委託給父親來完成,如果父親還有父親,就繼續將這個動作向上傳遞,一直到沒有父親的 根類載入器
也就是啟動類載入器。由根類載入來嘗試著進行載入我們所要載入的class檔案,如果不成功,就返回給拓展類載入器,拓展類載入器嘗試著載入,如果不成功就繼續向下傳遞,一直到載入成功,然後將整個載入動作返回給第一次嘗試載入的載入器中。
自己想要去載入,自己不去載入,讓自己的父親去載入,如果上面還有,就繼續向上追溯,一直到根節點,然後根節點嘗試自己載入,如果能載入,則成功,傳遞載入動作給 第一次載入的類載入器,如果不成功,傳遞給子節點,讓子節點嘗試去載入,子節點能否載入成功,成功則返回載入動作,如果不成功,接續傳遞給子節點,重複執行。
並不是所有的類載入都是雙親委託機制 oracle 的jdk 是標準的雙親委託機制
package**執行結果:com.zuoyan.classloader;
public
class
classloaderdemo
}class
c
執行結果的解釋,如果是使用跟類載入進行載入的,返回的就是null ,以下是類載入中的getclassloader 上的方法注釋
雙親委託類載入機制 類載入器機制
啟動類載入器和擴充套件類載入器沒有父類載入器,而系統類載入器的父類載入器是擴充套件類載入器,自定義類載入器父類載入器則是擴充套件類載入器 所謂的類載入 就是建立.class檔案對應的class物件,並將class檔案載入到記憶體的過程。1 載入 查詢類的.class檔案,並建立class物件 3 初...
類載入機制及雙親委派模型
虛擬機器把描述類的資料從class檔案載入到記憶體,並對資料進行校驗 轉換解析和初始化,最終形成可以被虛擬機器直接使用的j a型別 j a位元組碼 載入 連線 驗證 準備 解析 初始化 使用 解除安裝 有一篇部落格專門介紹過類的載入過程,這裡就不再詳細展開了,載入大致是通過類的全限定名獲取對應類的二...
類載入器及雙親委派機制
目錄類載入過程 3.初始化 類載入子系統中的initialization 類載入時機 類載入機制 引用資料 將類的class檔案讀入記憶體,並為建立乙個j a.lang.class物件。也就是說,當程式使用任何類時,系統都會為它新建乙個j a.lang.class物件。類的載入由類載入器完成,類載入...