1. 程式人生 > 實用技巧 >反射之類載入器(1)

反射之類載入器(1)

反射之類載入器(1)

一、介紹

本文主要用於學習Java四種類載入器。

二、類載入器

1、引導類載入器 (又稱根據載入器)BootStrap ClassLoader

由於並不是java語言實現的,也不是ClassLoader的子類,獲取它的物件往往返回null

System.out.println(String.class.getClassLoader());//null
2、擴充套件類載入器 Extension ClassLoader

負責載入jre/lib/ext擴充套件庫,是ClassLoader的子類。

程式碼示例:

新建一個Person類,將其匯出為一個jar包,將此jar放到jre/lib/ext

路徑下,列印輸出可檢視其地址值。

System.out.println(Person.class.getClassLoader());
//地址值為sun.misc.Launcher$ExtClassLoader@33909752
3、應用類載入器 Application ClassLoader

負責ClassPath路徑下的類(JDK5.0以後不需要手動生成path),是ClassLoader的子類,用於載入自己寫的檔案。

System.out.println(Person.class.getClassLoader());
//地址值為sun.misc.Launcher$AppClassLoader@33929101
4、自定義類載入器

當你的程式需要載入特定的目錄下的類可以自定義載入器。當程式中的位元組碼需要加密的時候,那麼往往會提供一個自定義類的載入對其進行解碼,後面會見到自定義類載入器tomcat