JVM系列之二:ClassLoad 詳解

類加載器的目的就是根據一個類的全限定名來讀取此類的二進制字節流到JVM中,然後轉換爲一個與目標類對應的 java.lang.Class對象實例。

當一個類加載器接收到一個類加載的任務時,先去緩存裏面找有沒有任務對象,如果沒有不會立即展開加載,而是將加載任務委託給它的父類加載器去執行,每一層的類都採用相同的方式,直至委託給最頂層的啓動類加載器爲止。如果父類加載器無法加載委託給它的類,便將類的加載任務退回給下一級類加載器去執行加載,如果所有的加載器都無法加載,則會拋一個

ClassNotFoundException 。各個級別的累加器加載的順序及加載內容如下圖所示:

 雙親委派加載機制的優點:一個可以避免類的重複加載,另外也避免了java的核心API被篡改

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