1. 程式人生 > >JVM載入class檔案的原理

JVM載入class檔案的原理

  1. 原始檔:編寫Java原始檔(我們也稱之為原始碼檔案),它的副檔名為.java;
  2. 編譯:然後通過編譯器把原始檔編譯成位元組碼檔案,位元組碼副檔名為.class;
  3. 執行:最後使用直譯器來執行位元組碼檔案。

類載入的主要步驟:

當程式要使用某個類時,如果該類還未被載入到記憶體中,則系統會通過載入,連線,初始化三步來實現對這個類進行初始化。

  1. 載入

通過類載入器將class檔案讀入記憶體,併為之建立一個Class物件。

  1. 連線

檢查 檢查待載入檔案的正確性

準備 負責為類的靜態成員分配記憶體,並設定預設初始化值

解析 將類的二進位制資料中的符號引用替換為直接引用(這一步是可選的)

  1. 初始化

對靜態變數和靜態程式碼塊執行初始化操作

類載入器的組成:

  1. Bootstrap ClassLoader 系統類載入器

負責Java核心類的載入

比如System,String等。在JDK中JRE的lib目錄下rt.jar檔案中

  1. Extension ClassLoader 擴充套件類載入器

負責JRE的擴充套件目錄中jar包的載入。

在JDK中JRE的lib目錄下ext目錄

  1. AppClassLoader負責載入應用類

classpath指定的目錄或jar包中的類