classloader

java默認的classloader:java

1.BootStrap ClassLoader:稱爲啓動類加載器,是Java類加載層次中最頂層的類加載器,負責加載JDK中的核心類庫,如:rt.jar、resources.jar、charsets.jar等,可經過以下程序得到該類加載器從哪些地方加載了相關的jar或class文件。jvm

2.Extension ClassLoader:稱爲擴展類加載器,負責加載Java的擴展類庫,默認加載JAVA_HOME/jre/lib/ext/目下的全部jar。spa

3.App ClassLoader:稱爲系統類加載器,負責加載應用程序classpath目錄下的全部jar和class文件。ssl

java的classloader採用的雙親委託機制,每一個classloader實例都包含一個父classloader的引用,頂層classloader沒有父類加載器,雙親機制原理以下:io

當須要加載某個類時,自上而下,先由父加載器進行加載,若是沒有再往下逐級查找加載,直到委託者加載某個類,若是還沒找到,直接拋出classnofound異常。class

classloader和class徹底相同時,jvm才認爲這個類是相同的,不然會出現類型轉換異常。原理

相關文章
相關標籤/搜索