ClassLoader做用 ClassLoader的做用是把編譯好的Class文件加載到JVM中。ClassLoader使用的是雙親委託模型來加載類的,每一個ClassLoader都有一個父類加載器,當ClassLoader須要加載某個類時,它先把這個任務委託給它的父類加載器試圖加載,若是全部的父類加載器都沒能加載到,才由本身加載。 Java默認提供3個ClassLoader 1. 啓動類加載器(BootStrap ClassLoader):啓動類加載器是Java類加載器的頂層加載器,負責加載JDK中的核心類庫,如rt.jar、resources.jar、jce.jar等。 2. 擴展類加載器(Extension ClassLoader):擴展類加載器是負責加載JDK的擴展類庫的,默認是ext目錄下的全部jar. 3. 應用類加載器(App ClassLoader):應用類加載器負責加載classpath指向的class文件和jar包。 雙親委託模型的好處 雙親委託模型能夠避免重複加載,當父類加載器已經加載了該類的時候,就沒有必要再加載一次。另外從安全方面考慮,經過這種委託模式,能夠避免用戶寫一些類來動態替代java核心api中定義的類。 ClassLoader的應用場景 ClassLoader可應用於服務器的熱佈署; ClassLoader可應用Class的加密。