類裝載器的功能及分類
顧名思義,類裝載器是用來把類(class)裝載進JVM的。JVM規(guī)范定義了兩種類型的類裝載器:啟動類裝載器(bootstrap)和用戶自定義裝載器(user-defined class loader)。
bootstrap是JVM自帶的類裝載器,用來裝載核心類庫,如java.lang.*等。如java.lang.Object是由bootstrap裝載的。
Java提供了抽象類ClassLoader,所有用戶自定義類裝載器都實例化自ClassLoader的子類。 System Class Loader是一個非凡的用戶自定義類裝載器,由JVM的實現(xiàn)者提供,在編程者不非凡指定裝載器的情況下默認(rèn)裝載用戶類。系統(tǒng)類裝載器可以通過ClassLoader.getSystemClassLoader() 方法得到。例1,測試你所使用的JVM的ClassLoader
/*LoaderSample1.java*/
public class LoaderSample1 {
public static void main(String[] args) {
Class c;
ClassLoader cl;
cl = ClassLoader.getSystemClassLoader();
System.out.PRintln(cl);
while (cl != null) {
cl = cl.getParent();
System.out.println(cl);
}
try {
c = Class.forName("java.lang.Object");
cl = c.getClassLoader();
System.out.println("java.lang.Object's loader is " + cl);
c = Class.forName("LoaderSample1");
cl = c.getClassLoader();
System.out.println("LoaderSample1's loader is " + cl);
} catch (Exception e) {
e.printStackTrace();
}
}
}新聞熱點
疑難解答