1. 程式人生 > >java類加載機制

java類加載機制

分配 導入 動態 靜態代碼塊 參考 nbsp bootstra 語言 app

java中通過JVM加載類文件,類加載方式分為隱式加載和顯式加載。其中,隱式加載時通過new創建對象時,隱式的通過類加載器將相應的類文件加載到JVM中。顯式加載通過class.forName()顯式方式把所需的類文件加載到JVM中。

在java語言中,類的加載時動態的,並不是一次將所有的類文件都加載到JVM中,而是先將基礎類加載到JVM中,其他用戶類等需要時在加載到JVM中。

在java語言中,類可以分3類:系統類、擴展類和自定義類,針對這3類文件提供了不同的類加載器

Bootstrap Loader -- 負責加載系統類

     ExtClass Loader -- 負責加載擴展類

      AppClassLoader -- 負責加載應用類

類加載過程主要有如下幾步:(詳細部分可以參考《深入理解java虛擬機》)

1. 裝載 : 根據查找路徑找到相應的class文件,然後導入。

2. 鏈接: 鏈接可以分為3步

(1) 檢查: 檢查待加載的class文件的正確性

(2)準備: 將類中的靜態變量分配內存空間

(3)解析:將符號引用解析為直接引用

3. 初始化: 對靜態變量和靜態代碼塊執行初始化工作。

java類加載機制