深入理解JVM (二):雙親委託機制

深入理解JVM 二:類加載器雙親委託機制


類加載器層次分類

擴展類加載器
根類加載器
系統類加載器
用戶自定義類加載器

類加載器的發親委託機制

  • 在父親委託機制中,各個加載器按照父子關係形成了樹形結構,除了根類加載器之外,其餘類加載器都有且只有一個父加載器。

在這裏插入圖片描述

  • Bootstrap ClassLoader/啓動類加載器

    • $JAVA_HOME中jre/lib/rt.jar裏所有的class,由C++實現,不是ClassLoader子類
  • Extension ClassLoader/擴展類加載器

    • 負責加載Java平臺中擴展功能的一些jar包,包括$JAVA_HOME中jre/lib/*.jar 或-Djava.ext.dirs指定目錄下的jar包
  • App ClassLoader/系統類加載器

    • 負責加載classpath中指定的jar包及目錄中class

若有一個類加載器能夠成功加載Test類,那麼這個類加載器被稱爲
定義類加載器,所有能成功返回Class對象引用的類加載器包括定義類加載器)都被成爲初始類加載器

示例:

public class MyTest{

public static void main(String[] args)throws Exception{
 	Class<?> clazz=Class.forName("java.lang.String");
  System.out.prinlin(clazz.getClassLoader);
} 


}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章