雙親委派模型
Java從1.2開始引入雙親委派模型。除了啟動類裝載器,每個類裝載器都有一個雙親。當類裝載器裝載某個類的時候,首先會委派它的雙親去裝載這個類,它的雙再委派自己的雙親,直到啟動類裝載器。
Java類裝載器的結構如下:
1、啟動類裝載器
主要負責裝載jdk_home/lib目錄下的核心api 或 -Xbootclasspath 選項指定的jar包。處于雙親委派的最頂層,該類其實是由C語言編寫。
2、擴展類裝載器
主要負責裝載jdk_home/lib/ext目錄下的jar包或 -Djava.ext.dirs 指定目錄下的jar包
3、系統類裝載器
主要負責裝載ClassPath下的類。
4、自定義類裝載器
自定義類繼承ClassLoader或其子類。可以運行時動態裝載某些類。