四種類加載器
1. 引導類加載器 Bootstrap Classloader:C和C++編寫窝剖,加載Java核心庫,提供JVM自身需要的類题翰,并不繼承與ClassLoader魂莫,沒有父加載器。還會加載擴展類和應用程序類加載器哲戚。只會加載java奔滑、javax艾岂、sun開頭的類
以下三種都繼承于ClassLoader類
2. 擴展類加載器 Extended Classloader:加載jre/lib/ext顺少,也就是擴展目錄下的類
3. 應用類加載器 Application Classloader:負責加載classpath下的類,程序中默認的類加載器
4. 自定義加載器
為什么要自定義類加載器
1. 隔離加載類
不同框架使用不同的加載器實現(xiàn)隔離
2. 修改類加載的方式
3. 擴展加載源
擴展加載的來源王浴,除了從本地物理磁盤脆炎、網(wǎng)絡、jar包中以外氓辣,可以擴展到從數(shù)據(jù)庫等等其他地方加載
4. 防止源碼泄露
對字節(jié)碼文件加密秒裕,需要使用時用自定義加載器解密
實現(xiàn)自定義加載器
getClassFromCustomPath(name)為自己寫的方法:從自定義路徑中加載制定類,如果指定路徑的字節(jié)碼文件進行了加密钞啸,則需在這個方法中解密几蜻,返回二進制字節(jié)流。