類載入過程

2022-07-22 12:51:14 字數 681 閱讀 5793

類從被載入到jvm中開始,到解除安裝為止,整個生命週期包括:

載入、驗證、準備、解析、初始化、使用和解除安裝七個階段。

其中類載入過程包括載入、驗證、準備、解析和初始化五個階段。

鏈結階段要做的是將**載入到jvm**中的**二進位制位元組流**的類資料資訊**合併到jvm的執行時狀態中**,  

經由驗證、準備和解析三個階段。

驗證類資料資訊是否符合jvm規範,是否是乙個有效的位元組碼檔案,  

驗證內容涵蓋了類資料資訊的格式驗證、語義分析、操作驗證等。

格式驗證

驗證是否符合class檔案規範
語義驗證

操作驗證

將常量池中的符號引用轉為直接引用(得到類或者字段、方法在記憶體中的指標或者偏移量,以便直接呼叫該方法),  

這個可以在初始化之後再執行。可以認為是一些靜態繫結的會被解析,動態繫結則只會在執行是進行解析;

靜態繫結包括一些final方法(不可以重寫),static方法(只會屬於當前類),構造器(不會被重寫)

參考資料:

類載入過程

類載入時機 1 new 靜態屬性,靜態方法呼叫 2 people.class 獲取class物件 3 載入子類時需提前載入父類 4 main函式所在的類需要載入 類載入器 也是一種類,可由其他類載入器載入 頂級父類載入器有c,c 寫成,不能由其他類載入器載入 載入類 雙親委派模型 從子類到父類依次查...

類載入過程

類載入過程 public class ssclass public class superclass extends ssclass protected static int value 123 public superclass 類載入過程 載入 驗證 準備 解析 初始化 使用 解除安裝 載入 根...

Java 類載入過程

1 載入 載入的過程本質上是乙個讀取二進位制資料的過程。可以是檔案,網路資料,記憶體中的資料等,這一階段是可以自定義的。載入過程中會在堆中初始化乙個 class 物件。2 驗證 驗證就是驗證這堆二進位制資料是不是有效的,就是這個 class 資料是否可以載入虛擬機器。例如驗證檔案是否是 0xcafe...