JVM記憶體布局

2021-10-04 05:46:03 字數 582 閱讀 6448

jvm五大記憶體布局:

堆、方法區(元空間)、虛擬機器棧、本地方法棧、程式計數器

堆和方法區執行緒共享

虛擬機器棧、本地方法棧和程式計數器執行緒私有

即每個執行緒都會有自己的分配空間

是記憶體最大的一塊,主要存放物件例項和陣列;

方法區主要儲存已被虛擬機器載入的類資訊、常量、靜態變數、編譯器編譯後的**等資料。

虛擬機器棧主要存放區域性變數表、操作棧、動態鏈結、方法出口等資訊;

本地方法棧和虛擬機器棧基本一樣,不過本地方法棧主要儲存native的方法資訊。

程式計數器主要是記錄當前執行緒所執行的位元組碼的行號指示器。

jvm 物件在記憶體中儲存的布局

jvm 物件在記憶體中儲存的布局有三部分 物件頭 例項資料 對齊填充。1 物件頭 執行時資料 型別指標 陣列長度。1 執行時資料 hashcode雜湊碼 鎖狀態標誌 執行緒持有的鎖 gc年齡分代等,有些不是固定不變的,在執行時會根據當時的狀態進行修改。2 型別指標 指向方法區中型別資訊的指標。型別資...

jvm記憶體模型 JVM記憶體模型詳情解析

一 結構圖 note string常量池 存在 堆記憶體中 二 各部分詳情解析 1 堆1 老年代 物件年齡 經過一次 monitor gc 年齡加1 15 的會存到 老年代 2 年輕代 3 常量池 string常量 儲存在堆中 2 虛擬機器棧 1 區域性變數表 2 運算元棧 3 動態鏈結 4 方法出...

JVM記憶體劃分

從上圖可以看出,jvm記憶體區域可以簡單的劃分為方法區,堆區,虛擬機器棧,本地方法棧和程式計數器。上圖中,淺色的為執行緒共有的記憶體區域,深色的為執行緒私有的記憶體區域。可以看出,方法區和堆區是所有執行緒之間共享的記憶體區,而棧區和pc則是執行緒本身私有的,不能被其他執行緒所共享。我們簡單的說下各個...