Bootstrap類加載器: 加載JRE/lib/rt.jar
Extension類加載器: 加載JRE/lib/ext或java.ext.dirs目錄
Application類加載器:加載CLASSPATH環境變量,
類加載器工作原則:
雙親委派
假設你有一個應用需要的類叫作Test.class,首先加載這個類的請求由Application類加載器委託給它的父類加載器Extension類加載器,然後再委託給Bootstrap類加載器。Bootstrap類加載器會先看看rt.jar中有沒有這個類,因爲並沒有這個類,所以這個請求由回到Extension類加載器,它會查看jre/lib/ext目錄下有沒有這個類,如果這個類被Extension類加載器找到了,那麼它將被加載,而Application類加載器不會加載這個類;而如果這個類沒有被Extension類加載器找到,那麼再由Application類加載器從classpath中尋找
可見性:
根據可見性機制,子類加載器可以看到父類加載器加載的類,而反之則不行
單一性機制
父加載器加載過的類不能被子加載器加載第二次