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