Jvm的類載入機制 jdk1 8中方法區的變動

2021-10-10 04:45:43 字數 771 閱讀 4382

載入 —> 驗證 —> 準備 —> 解析 —> 初始化 —> 使用 --> 解除安裝

初始化:執行類構造器()0方法的過程。

ps:()0方法是由編譯器自動收集類中的所有類變數的賦值動作與靜態語句塊(static{}塊)中的語句合併產生的。且父類的先執行,同乙個類載入器下只會執行一次

只有這5中情況才會導致類的類的初始化

雙親委派模型

當乙個類收到了類載入請求時,不會自己先去載入這個類,而是將其委派給父類,由父類

去載入,如果此時父類不能載入,反饋給子類,由子類去完成類的載入

jdk1.8中方法區的變動

jdk 8 中永久代轉換為元空間。

為什麼?

1、字串存在永久代中,容易出現效能問題和記憶體溢位。

2、類及方法的資訊等比較難確定其大小,因此對於永久代的大小指定比較困難,太小容易出現永久代溢位,太大則容易導致老年代溢位。

3、永久代會為 gc 帶來不必要的複雜度,並且**效率偏低。

字串常量池移到了堆中

元空間並不在虛擬機器中,而是使用本地記憶體。

JVM 類載入機制

1 載入步驟 jvm 類載入機制分為五個部分 載入,驗證,準備,解析,初始化。2 類載入器 3 雙親委派 1 什麼是雙親委派?當乙個類收到了類載入請求,他首先把這個請求委派給父類去完成,每乙個層次類載入器都是如此,因此所有的載入請求都應該傳送到啟動類載入其中,只有當父類載入器反饋自己無法完成這個請求...

Jvm類載入機制

類載入的過程 類載入器 控制台列印輸出 主要分為以下三步 載入源包括很多種,如檔案 class檔案,jar檔案 網路 計算生成的乙個二進位製流 proxy 由其他檔案生成 jsp 等,資料庫 準備階段正式為類變數分配記憶體並設定變數的初始值。這些變數使用的記憶體都將在方法區中進行分配 這裡的初始值並...

JVM類載入機制

jvm類載入總共有7個階段。載入 驗證 準備 解析 初始化 使用 解除安裝。主要需要了解的為準備階段,初始化階段。下面分別對此兩個階段進行解析。初始化階段 初始化分為主動引用和被動引用。主動引用包括 1 建立類的例項 2 訪問類的靜態變數 3 訪問類的靜態方法 4 反射 5 虛擬機器啟動時,定義了m...