天天看點

程式員的Java類加載器

java的類裝載方式,有兩種:

    1.隐式裝載,程式在運作過程中當碰到通過new等方式生成對象時,隐式調用類裝載器加載到對應的類型jvm中。

    2.顯式裝載,通過class.forName()等方法,顯式加載需要的類。

類加載的動态性展現:

    一個應用程式是有n多個類組成的,java程式啟動時,并不是一次性加載完所有的程式,而是先把能保證程式啟動的基礎類加載一次性加載到jvm中,其他的類等需要的時候才會放到jvm。這樣的好處是節省了記憶體的開銷,因為java最早就是為了嵌入式系統而設計的,記憶體寶貴。是以用到再加載是java動态性的一種展現。

java類的加載器:

    JDK預設了三種加載器ClassLoader:

        BootStrapClassLoader:所有加載器的父類,是jvm的一部分,用c++編寫的,加載的是  java_home/jre/lib 目錄中的類庫

        extensionClassLoader:是父類加載器的子類,會加載 java_home/jre/lib/ext 目錄中的類庫以及

java.ext.dirs

系統變量指定的路徑中類庫。

        applicationClassLoader:加載 classPath 下的所有類

定義類加載器:

    1、 繼承java.lang.ClassLoader

    2、 重寫父類的findClass方法

繼續閱讀