關於java中的類載入器

UpYou發表於2020-11-06

什麼是類載入器?

類載入器是專門負責載入類的命令或者說工具

ClassLoader

java中的3個類載入器

JDK中自帶了3個類載入器

  1. 啟動類載入器
  2. 擴充套件類載入器
  3. 應用類載入器

假設有這樣一段程式碼

String s = "abc";

程式碼在開始執行之前,會將所需要的類全部載入到JVM當中。通過類載入器載入。

看到以上程式碼類載入器會去找String.class檔案,找到就載入,那麼是怎麼進行載入的呢?

  • 首先通過“啟動類載入器”載入。
    “啟動類載入器”專門載入jre/lib/rt.jar包下的類,rt.jar都是JDK中最核心的類庫。

  • 如果通過“啟動類載入器”載入不到的時候,會通過“擴充套件類載入器”載入。

    “擴充套件類載入器”專門載入jre/lib/ext目錄下的class檔案

  • 如果“擴充套件類載入器”沒有載入到時,那麼會通過“應用類載入器”載入。
    “應用類載入器”專門載入:classpath中的jar包(class)


java中為了保證類載入的安全,使用了雙親委派機制。優先從“啟動類載入器”中載入,這個稱為“父”,“父”無法載入到,再從“擴充套件類載入器”中載入,這個稱為“母”。雙親委派。如果都載入不到,才會考慮從“應用類載入器”中載入,直到載入到為止。

相關文章