JDK類載入機制原始碼分析及原始碼分析

2021-08-28 23:00:25 字數 688 閱讀 3357

jvm的類載入機制主要有如下三種機制:

1.全盤負責:所謂全盤負責,就是說當乙個類載入器載入個個class的時候,該class所依賴和引用的其他class也將由該類載入

器負責載入,除非使用另外乙個類載入器來載入。

2.雙親委託:所謂雙親委託則是先讓parent(父)類載入器試圖載入該class(若父載入器仍有父類載入器,則繼續委託),只有在父類載入

器無法載入該類時才嘗試從自己的類路徑中載入該類。

3.快取機制:快取機制將會保證所有被載入過的class都會被快取,當程式中需要使用某個類時,類載入器會先從快取中搜尋該class,

只有當快取中不存在該class物件時,系統才會重新讀取該類的二進位制資料,並將其轉化為class物件,並存入cache。這

就是為什麼我們修改了class後,程式必須重新啟動jvm,程式所作的修改才會生效的原因。

原始碼分析:

檢視classloader類的原始碼:

protected synchronized class<?> loadclass(string name, boolean resolve)

throws classnotfoundexception

else

} catch (classnotfoundexception e)

}if (resolve)

return c;

}

JDK原始碼分析 Vector

vector和arraylist有一定的不同 int newcapacity oldcapacity capacityincrement 0 capacityincrement oldcapacity 從這一句我們可以看出 增長容量 capacityincrement 0 增長倍數 陣列數量 舊容量...

JDK原始碼分析 Collections

1.集合框架圖 hashmap是通過 拉鍊法 實現的雜湊表。它包括幾個重要的成員變數 table,size,threshold,loadfactor,modcount。table是乙個entry陣列型別,而entry實際上就是乙個單向鍊錶。雜湊表的 key value鍵值對 都是儲存在entry陣列...

JDK中String類的原始碼分析 二

1 startswith string prefix,int toffset 方法 包括startswith endswith 方法,都是呼叫上述乙個方法 1 public boolean startswith string prefix,int toffset 11while pc 0 15 16...