生活随笔
收集整理的這篇文章主要介紹了
为什么需要用户自定义类加载器及具体实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、在java的日常應用程序開發中,類的加載幾乎是由上述三種類加載器相互配合執行的,在必要時,我們還需要自定義類加載器,來定制類的加載方式
2、為什么要自定義類加載器
?? ?隔離加載類
?? ?修改類的加載方式
?? ?擴展加載源
?? ?防止源碼泄露
3、用戶自定義類加載器的實現步驟
package com.leon.java1;import java.io.FileNotFoundException;public class CustomClassLoader extends ClassLoader {@Overrideprotected Class<?> findClass(String name) throws ClassNotFoundException {try {byte[] result = getClassFromCustomPath(name);if(result == null){throw new FileNotFoundException();}else{return defineClass(name,result,0,result.length);}} catch (FileNotFoundException e) {e.printStackTrace();}throw new ClassNotFoundException(name);}private byte[] getClassFromCustomPath(String name){//從自定義路徑中加載指定類:細節略//如果指定路徑的字節碼文件進行了加密,則需要在此方法中進行解密操作。return null;}public static void main(String[] args) {CustomClassLoader customClassLoader = new CustomClassLoader();try {Class<?> clazz = Class.forName("One",true,customClassLoader);Object obj = clazz.newInstance();System.out.println(obj.getClass().getClassLoader());} catch (Exception e) {e.printStackTrace();}}
}
?
總結
以上是生活随笔為你收集整理的为什么需要用户自定义类加载器及具体实现的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。