Java 類載入過程

2021-08-18 15:08:39 字數 531 閱讀 5648

1、載入

載入的過程本質上是乙個讀取二進位制資料的過程。可以是檔案,網路資料,記憶體中的資料等,這一階段是可以自定義的。載入過程中會在堆中初始化乙個 class 物件。

2、驗證

驗證就是驗證這堆二進位制資料是不是有效的,就是這個 class 資料是否可以載入虛擬機器。例如驗證檔案是否是 0xcafebab 開頭,再驗證版本號是否被當前 jvm 支援,然後再校驗內部的變數等等是否符合規範。

3、準備

準備階段會在記憶體中開闢出空供靜態變數使用。

4、解析

解析過程就是讀取 class 檔案的內容然後解析出裡面的變數值的等。

5、初始化

解析出來的變數值賦值放到在準備階段開闢的記憶體空間中。

6、使用

在堆中尋找到 class ,找到構造方法,執行構造方法便完成乙個物件的使用。

7、解除安裝

解除安裝乙個類不怎麼常見,用途的話一般是伺服器動態部署等,例如 tomcat 解除部署乙個**,這時候就要從記憶體中解除安裝關聯的類,解除安裝的過程一般包括清除 class 物件,清除靜態變數等。

java類的載入過程

以person person new person 為例進行說明 1 因為new用到了person.class,所以會先找到person.class檔案,並載入到記憶體中 2 執行該類中的static 塊,如果有的話,給person.class類進行初始化 3 在堆記憶體中開闢空間分配記憶體位址 4...

Java 類的載入過程

棧 用來執行函式。可以儲存區域性資訊 堆 用來儲存new出來的實體 特點 每乙個實體所開闢的空間都有乙個位址 每乙個實體中儲存的資料都有乙個預設初始值 方法區 存放.class和static 方法區其實是由n多個小的區域構成。有存放非靜態內容的非靜態區域,還有存放靜態內容的靜態區域,還有存放常量的常...

類載入過程

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