再次梳理類載入機制

2021-08-29 18:39:49 字數 419 閱讀 2169

1.類載入機制過程:

載入class檔案,由類載入器載入,類載入器機制採用雙親委派機制,由自定義類載入器拋給系統類載入器,載入失敗在由自己載入。

連線階段:驗證–準備–解析

驗證:簡單來說目的是驗證class位元組碼的安全性。

準備:此時,靜態常量在這個時候字元化表示,開始有乙個預設值。

解析:靜態常量賦值操作。

在準備解析:靜態成員變數進行符號解析,有預設值,但是沒有賦值初始化操作。

初始化:static{} 靜態成員變數進行賦值操作。賦值按順序進行。

值得一提的是,當類沒有進行初始化的時候,static{}和靜態成員變數的賦值操作是沒有進行的。也就是類載入沒有進行到初始化階段。

注意:呼叫靜態成員常量是不觸發初始化操作的。

下例子:

詳細介紹在我的另一篇文章。

類載入機制

類的生命週期 乙個類從被載入到記憶體中開始,他的生命週期包括以下幾個階段 類載入時機 類是什麼時候開始載入的?虛擬機器並沒有明確規定,可以由虛擬機器自行實現,但是在類初始化前類必須被載入,虛擬機器明確規定了有且只有5種情況必須進行類的初始化,因此我們也可以理解為類載入的5個時機。使用new關鍵字例項...

類載入的問題梳理

1 類載入的過程 對過程的每個步驟進行細化 2 類載入器有哪些和作用 3 類載入器之間的關係 4 對類載入原始碼的一些理解 5 什麼是雙親委派機制 6 為什麼又雙親委派機制 7 能不能主動破壞這種雙親委派機制?怎麼破壞?8 為什麼重寫loadclass方法可以破壞雙親委派,這個方法和findclas...

雙親委託類載入機制 類載入器機制

啟動類載入器和擴充套件類載入器沒有父類載入器,而系統類載入器的父類載入器是擴充套件類載入器,自定義類載入器父類載入器則是擴充套件類載入器 所謂的類載入 就是建立.class檔案對應的class物件,並將class檔案載入到記憶體的過程。1 載入 查詢類的.class檔案,並建立class物件 3 初...