引导类、扩展类、系统类加载器的使用及演示
一、啟動類加載器(引導類加載器, Bootstrap ClassLoader)
1、這個類是使用c/c++語言實現的, 嵌套在JVM內部。
2、它用來加載java的核心庫(java_home/jre/lib/rt.jar/resource.jar或sun.boot.class.path路徑下的內容),用于提供jvm自身需要的類。
3、并不繼承自java.lang.ClassLoader,沒有父加載器
4、加載擴展類和應用程序類加載器,并指定為他們的父類加載器
5、處于安全考慮,Bootstrap啟動類加載器只加載包名為java、javax、sun等開頭的類
二、 擴展類加載器(Extension ClassLoader)
1、java語言編寫, 由sun.misc.Launcher$ExClassLoader實現
2、派生于ClassLoader類
3、父類加載器為啟動類加載器
4、從java.ext.dirs系統屬性所指定的目錄中加載類庫,或從jdk的安裝目錄的jre/lib/ext子目錄(擴展目錄)下加載類庫。如果用戶創建的jar放在次目錄下,也會自動由擴展類加載器加載。
三、 虛擬機自帶的加載器
應用程序類加載器(系統類加載器,AppClassLoader)
1、java語言編寫,有sun.misc.Launcher$AppClassLoader實現
2、派生于ClassLoader類
3、父類加載器為擴展類加載器
4、它負責加載環境變量classpath或系統屬性java.class.path指定路徑下的類庫
5、該類加載器是程序中默認的加載器,一般來說,java應用的類都是由它來完成加載
6、通過ClassLoader#getSystemClassLoader()方法可以獲取到該類加載器
?
?
總結
以上是生活随笔為你收集整理的引导类、扩展类、系统类加载器的使用及演示的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 几种类加载器的使用体会
- 下一篇: 【技术改造】电商系统用户模块集成Feig