分類
1、引導(dǎo)類加載器,用C++編寫(xiě)的,是JVM自帶的類加載器
負(fù)責(zé)Java平臺(tái)核心庫(kù),用來(lái)加載核心類庫(kù)。構(gòu)造ExtClassLoader和AppClassLoader,該加載器無(wú)法直接獲取
Java平臺(tái)核心庫(kù):jre\lib\rt.jar,用壓縮軟件打開(kāi),里面的類就是我們平時(shí)要學(xué)的。這個(gè)jre是公共jre,并非jdk目錄下的專用jre
2、拓展類加載器,負(fù)責(zé)jre\lib\ext目錄下的jar包
或-D java.ext.dirs指定目錄下的jar包裝入工作庫(kù)
此處jre也是公共jre
3、系統(tǒng)類加載器
負(fù)責(zé)java -classpath或-D java.class.path所指的目錄下的類與jar包裝入工作,是最常用的加載器
實(shí)例
package com.volcano.reflection;
public class TestReflection4 {
public static void main(String[] args) {
//獲取系統(tǒng)類加載器
ClassLoader classLoader = ClassLoader.getSystemClassLoader();
System.out.println(classLoader);
//獲取拓展類加載器
classLoader = classLoader.getParent();
System.out.println(classLoader);
//獲取引導(dǎo)類加載器(是直接無(wú)法獲取的)
classLoader = classLoader.getParent();
System.out.println(classLoader);
//測(cè)試當(dāng)前類是由哪個(gè)類加載器加載的——引導(dǎo)類加載器
System.out.println(TestReflection4.class.getClassLoader());
//測(cè)試JDK內(nèi)置的類是由哪個(gè)類加載器加載的——系統(tǒng)類加載器null
System.out.println(Object.class.getClassLoader());
//如何獲得系統(tǒng)類加載器的加載的類的路徑
System.out.println(System.getProperty("java.class.path"));
/*之前用過(guò)的commons-io和自己寫(xiě)的類也在其中
* E:\JDK\jre\lib\charsets.jar;
* E:\JDK\jre\lib\deploy.jar;
* E:\JDK\jre\lib\ext\access-bridge-64.jar;
* E:\JDK\jre\lib\ext\cldrdata.jar;
* E:\JDK\jre\lib\ext\dnsns.jar;
* E:\JDK\jre\lib\ext\jaccess.jar;
* E:\JDK\jre\lib\ext\jfxrt.jar;
* E:\JDK\jre\lib\ext\localedata.jar;
* E:\JDK\jre\lib\ext\nashorn
* .jar;E:\JDK\jre\lib\ext\sunec.jar;
* E:\JDK\jre\lib\ext\sunjce_provider.jar;
* E:\JDK\jre\lib\ext\sunmscapi.jar;
* E:\JDK\jre\lib\ext\sunpkcs11
* .jar;E:\JDK\jre\lib\ext\zipfs.jar;
* E:\JDK\jre\lib\javaws.jar;
* E:\JDK\jre\lib\jce.jar;
* E:\JDK\jre\lib\jfr.jar;
* E:\JDK\jre\lib\jfxswt.jar;
* E:\JDK\jre\lib\jsse.jar;
* E:\JDK\jre\lib\management-agent.jar;
* E:\JDK\jre\lib\plugin.jar;
* E:\JDK\jre\lib\resources.jar;
* E:\JDK\jre\lib\rt.jar;
* F:\云\Code\JavaSE\out\production\基礎(chǔ)語(yǔ)法;
* F:\云\Code\JavaSE\基礎(chǔ)語(yǔ)法\src\com\lib\commons-io-2.6.jar;
* D:\IntelliJ IDEA 2018.2.4\lib\idea_rt.jar
* */
}
}
以上就是java類加載器的分類,希望對(duì)大家有所幫助。更多關(guān)于“java培訓(xùn)”的問(wèn)題,歡迎咨詢千鋒教育在線名師。千鋒教育多年辦學(xué),課程大綱緊跟企業(yè)需求,更科學(xué)更嚴(yán)謹(jǐn),每年培養(yǎng)泛IT人才近2萬(wàn)人。不論你是零基礎(chǔ)還是想提升,都可以找到適合的班型,千鋒教育隨時(shí)歡迎你來(lái)試聽(tīng)。