什麼是類載入器?
類載入器是專門負責載入類的命令或者說工具
ClassLoader
java中的3個類載入器
JDK中自帶了3個類載入器
- 啟動類載入器
- 擴充套件類載入器
- 應用類載入器
假設有這樣一段程式碼
String s = "abc";
程式碼在開始執行之前,會將所需要的類全部載入到JVM當中。通過類載入器載入。
看到以上程式碼類載入器會去找String.class檔案,找到就載入,那麼是怎麼進行載入的呢?
-
首先通過“啟動類載入器”載入。
“啟動類載入器”專門載入jre/lib/rt.jar包下的類,rt.jar都是JDK中最核心的類庫。 -
如果通過“啟動類載入器”載入不到的時候,會通過“擴充套件類載入器”載入。
“擴充套件類載入器”專門載入jre/lib/ext目錄下的class檔案
-
如果“擴充套件類載入器”沒有載入到時,那麼會通過“應用類載入器”載入。
“應用類載入器”專門載入:classpath中的jar包(class)
java中為了保證類載入的安全,使用了雙親委派機制。優先從“啟動類載入器”中載入,這個稱為“父”,“父”無法載入到,再從“擴充套件類載入器”中載入,這個稱為“母”。雙親委派。如果都載入不到,才會考慮從“應用類載入器”中載入,直到載入到為止。