雙親委派機制
Java虛擬機器對Class檔案採用的是按需載入的方式,也就是說當需要使用該類的時候才會將它的class檔案載入到記憶體生成Class物件,而且載入某個類的Class檔案時,Java虛擬機器採用的是雙親委派模式,即把請求交給父類處理,它是一種任務委派模式。
工作原理
- 如果一個類載入器收到了類載入請求,它並不會自己先去載入,而是把這個請求委託各自己的父類去執行。
- 如果父類載入器還存在其父類載入器,則進一步向上委託,依次遞迴,請求最終將到達頂層的啟動類載入器。
- 如果父類載入器可以完成類載入任務,就成功返回,倘若父類載入器無法完成類載入任務,子載入器就會嘗試自己去載入,這就是雙親委派機制。
示例圖如下:
雙親委派機制的優勢
- 避免類的重複載入
- 保護程式安全,防止核心API被隨意篡改(安全沙箱)