類載入器 --classLoader
阿新 • • 發佈:2022-04-08
類載入器
類載入的作用:將class檔案位元組碼內容載入到記憶體中,並將這些靜態資料轉換成方法區的執行時資料結構,然後在堆中生成一個代表這個類的java.lang.Class物件,作為方法區中類資料的訪問
載入器的分類
- 引導類載入器:用C++編寫的,是JVM自帶的類載入器,負責Java平臺核心庫,用來裝載核心類庫。該載入器無法直接獲取
- 擴充套件類載入器:負責jre/lib/ext目錄下的jar包或-java.ext.dirs指定目錄下的jar包裝入工作庫
- 系統類載入器:負責java-classpath或-Djava.class.path所指的目錄下的類與jar包裝入工作,是最常用的載入器
自定義類是系統類載入器載入
系統內建類,是根載入器載入
package Base01.reflection.Demo03; public class Demo01 { public static void main(String[] args) throws ClassNotFoundException { //獲取系統類的載入器 ClassLoader systemClassLoader = ClassLoader.getSystemClassLoader(); System.out.println(systemClassLoader); //獲取系統類載入器的父類載入器————>擴充套件載入器 ClassLoader parent = systemClassLoader.getParent(); System.out.println(parent); //獲取擴充套件載入器的父類載入器————>根載入器 ClassLoader parent1 = parent.getParent(); System.out.println(parent1); System.out.println("==========================="); //自定義類是系統類載入器載入 ClassLoader demo01 = Class.forName("reflection.Demo03.Demo01").getClassLoader(); System.out.println(demo01); System.out.println("==========================="); //系統內建類,是根載入器載入 ClassLoader obj = Object.class.getClassLoader(); System.out.println(obj); } }