用戶自定義類加載器
在Java的日常應(yīng)用程序開發(fā)中,類的加載幾乎是由上節(jié)3種類加載器(引導(dǎo)、擴展和系統(tǒng)類加載器)相互配合執(zhí)行的,在必要時,我們還可以自定義類加載器,來定制類的加載方式。
為什么要自定義類加載器
- 隔離加載類
- 修改類加載的方式
- 擴展加載源
- 防止源碼泄漏
用戶自定義類加載器實現(xiàn)步驟
關(guān)于ClassLoader
ClassLoader類,它是一個抽象類,其后所有的類加載器都繼承自ClassLoader(不包括啟動類加載器)
獲取ClassLoader的幾種方
雙親委派機制
Java虛擬機對class文件采用的是按需加載的方式,也就是說當(dāng)需要使用該類時才會將它的class文件加載到內(nèi)存生成class對象。而且加載某個類的class文件時,Java虛擬機采用的是雙親委派模式,即把請求交由父類處理,它是一種任務(wù)委派模式。
案例分析:
我們自己創(chuàng)建一個 java.lang.String,當(dāng)我們使用String這個類的時候,是加載我們自己寫的String類還是系統(tǒng)給我們提供的String類呢???顯然是系統(tǒng)提供的String。
package chapter01.com.wust.yq;
public class StringTest {
public static void main(String[] args) {
java.lang.String s = new java.lang.String();
System.out.println("hello");
}
}
工作原理
優(yōu)勢
本文摘自 :https://blog.51cto.com/u