類加載器

四種類加載器


1. 引導類加載器 Bootstrap Classloader:C和C++編寫,加載Java核心庫,提供JVM自身需要的類,并不繼承與ClassLoader,沒有父加載器。還會加載擴展類和應用程序類加載器。只會加載java、javax、sun開頭的類

以下三種都繼承于ClassLoader類

2. 擴展類加載器 Extended Classloader:加載jre/lib/ext,也就是擴展目錄下的類

3. 應用類加載器 Application Classloader:負責加載classpath下的類,程序中默認的類加載器

4. 自定義加載器

為什么要自定義類加載器


1. 隔離加載類

不同框架使用不同的加載器實現隔離

2. 修改類加載的方式


3. 擴展加載源

擴展加載的來源,除了從本地物理磁盤、網絡、jar包中以外,可以擴展到從數據庫等等其他地方加載

4. 防止源碼泄露

對字節碼文件加密,需要使用時用自定義加載器解密


實現自定義加載器



getClassFromCustomPath(name)為自己寫的方法:從自定義路徑中加載制定類,如果指定路徑的字節碼文件進行了加密,則需在這個方法中解密,返回二進制字節流。


獲取ClassLoader的途徑



?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容