- 類加載的作用:將class文件字節碼內容加載到內存中,並將這些靜態數據轉換成方法區的運行時數據結構,然后在堆中生成一個代表這個類的java.lang.Class對象,作為方法區中類數據的訪問入口。
- 類緩存:標准的JavaSE類加載器可以按要求查找類,但一旦某個類被加載到類加載器中,它將維持加載(緩存)一段時間,不過JVM垃圾回收機制(gc)可以回收這些Class對象。
- JVM規范定義了如下類型的類的加載器
- 引導類加載器(根加載器):用C++編寫,是JVM自帶的類加載器,負責java平台核心庫,用來裝載核心庫。該加載器無法直接獲取
- 擴展類加載器:負責jre/lib/ext目錄下的jar包或-D java.ext.dirs 指定目錄下的jar包裝入工作庫
- 系統類加載器:負責java -classpath或-D java.class.path所指的目錄下的類與jar包裝入工作,是最常用的加載器。
測試用例:


雙親委托機制:
簡單來說就是加載一個類進內存,先從系統類加載器找,往上從擴展類中找,往上再從根加載器中找。