分類
1、引導類別載入器,用C 寫的,是JVM自帶的類別載入器
負責Java平台核心庫,用來載入核心類別庫。建構ExtClassLoader和AppClassLoader,該載入器無法直接取得
Java平台核心庫:jre\lib\rt.jar,用壓縮軟體打開,裡面的類別就是我們平常要學的。這個jre是公共jre,並非jdk目錄下的專用jre
2、拓展類別載入器,負責jre\lib\ext目錄下的jar套件
或-D java.ext.dirs指定目錄下的jar包裝入工作庫
此處jre也是公共jre
3、系統類別載入器
負責java -classpath或-D java.class.path所指的目錄下的類別與jar包裝入工作,是最常用的載入器
實例
package com.volcano.reflection; public class TestReflection4 { public static void main(String[] args) { //获取系统类加载器 ClassLoader classLoader = ClassLoader.getSystemClassLoader(); System.out.println(classLoader); //获取拓展类加载器 classLoader = classLoader.getParent(); System.out.println(classLoader); //获取引导类加载器(是直接无法获取的) classLoader = classLoader.getParent(); System.out.println(classLoader); //测试当前类是由哪个类加载器加载的——引导类加载器 System.out.println(TestReflection4.class.getClassLoader()); //测试JDK内置的类是由哪个类加载器加载的——系统类加载器null System.out.println(Object.class.getClassLoader()); //如何获得系统类加载器的加载的类的路径 System.out.println(System.getProperty("java.class.path")); /*之前用过的commons-io和自己写的类也在其中 * 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\基础语法; * F:\云\Code\JavaSE\基础语法\src\com\lib\commons-io-2.6.jar; * D:\IntelliJ IDEA 2018.2.4\lib\idea_rt.jar * */ } }
以上是Java類別載入器的使用及分類的詳細內容。更多資訊請關注PHP中文網其他相關文章!