Java類載入筆記(1),java類載入筆記

來源:互聯網
上載者:User

Java類載入筆記(1),java類載入筆記

當一個程式調用某個類,這個類還沒有被載入到記憶體中時,我們的系統會通過以下三個步驟來對該類進行初始化:


                                                                                                


1、類的載入

類載入指的是將類的class檔案讀入記憶體中,並給它建立一個java.lang.Class對象。類的載入時由類載入器完成的,我們可以通過類載入器來載入以下來源的位元據:

--從本地檔案系統載入class檔案。

--從JAR包中載入class檔案。

--從網路中載入class檔案。

--將一個Java源檔案動態編譯,並進行載入。


2、類的串連

當類被載入後,系統就會產生一個Class對象,接著將位元據合并到JRE中。類串連又被分為以下幾步:

--檢驗被載入的類是否有正確的內部結構,並且和其他類協調一致。

--為類的靜態Field分配記憶體,並設定預設值。

--將類的位元據中的符號引用替換成直接引用。



3、類的初始化

類的初始化主要對靜態Filed進行初始化,指定靜態初始化可以通過聲明靜態Field時指定初始化值、可以通過靜態初始化塊為靜態Field指定初始化值。

類的初始化主要按照以下步驟:

--如果這個類還沒有被載入和串連,那麼先載入後串連這個類。

--在執行第一個步驟時,應該去檢查這個類的直接父類是否被初始化,如果沒有初始化,就去先初始化它的直接父類(當然在初始化直接父類時,這個直接父類又有直接父類,還要去檢查它的直接父類,以此類推)

--如果類中有初始化語句,那麼依次去執行這些初始化語句。




轉載請註明出處:http://blog.csdn.net/hai_qing_xu_kong/article/details/42609883     情緒控_ 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.