JVM從入門到入魔(一) 類加載機制

一.類加載過程

1.裝載

類的class文件讀入到內存,併爲之創建一個java.lang.Class對象

  1.定位  classloader.find()  找到文件位置,通過類的全限定名來獲取定義此類的二進制字節流

  2.將class文件信息放到方法區中

  3.將 class對應的對象 放到JVM的堆中

2.鏈接

  1.確保類的信息的正確性

  2.爲類的靜態變量分配空間,並初始化爲默認值

  3.將class中的符號引用轉爲直接引用  , 也就是class中的符號轉爲內存中的地址

3.初始化

將類的靜態變量賦值爲真正的值

 

二.類加載器

類加載器負責加載所有的類,其爲所有被載入內存中的類生成一個java.lang.Class實例對象。一旦一個類被加載如JVM中,同一個類就不會被再次載入了。

 

三.類加載機制

1.全盤負責

2.雙親委派

3.緩存機制

 

雙親委派機制:如果一個類加載器收到了類加載請求,它並不會自己先去加載,而是把這個請求委託給父類的加載器去執行,如果父類加載器還存在其父類加載器,則進一步向上委託,依次遞歸,請求最終將到達頂層的啓動類加載器,如果父類加載器可以完成類加載任務,就成功返回,倘若父類加載器無法完成此加載任務,子加載器纔會嘗試自己去加載。

 

 

發佈了35 篇原創文章 · 獲贊 4 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章