JVM記憶體模型

2022-09-12 13:36:35 字數 493 閱讀 5044

程式計數器:當前執行緒所執行的位元組碼的行動指示器

本地方法棧:為虛擬機器使用的native方法服務

每個方法方法建立乙個棧楨,棧楨儲存了當前方法的資料資訊(區域性變數),方法呼叫完畢,該棧楨就會被銷毀。

j**a堆:被所有執行緒所共享的一塊記憶體區域,在j**a虛擬機器啟動時建立,所有物件及陣列都要在堆上分配,(使用new關鍵字就表示要在堆中開闢一塊新的記憶體空間)。

方法區:執行緒共享的一塊記憶體區域,儲存已被虛擬機器載入的類資訊,常量,靜態變數,即編譯後的**資料等(這個區域的記憶體**目標主要是針對常量池的**和對型別的解除安裝)。

gc(garbage collection):垃圾**器。:j**a的自動垃圾**機制:簡單理解為, 程式設計師就不需要再手動的去控制記憶體的釋放。當jvm發覺記憶體資源緊張的時候,就會自動地去清理無用物件(沒有被引用到的物件)所占用的記憶體空間。

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

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

jvm記憶體模型

主要分為棧,堆,方法區,程式計數器 1.程式計數器 2.棧 stack 虛擬機器棧 每個執行緒獨生成乙個棧,執行緒中每呼叫乙個方法生成乙個棧幀,棧幀依次壓棧 棧幀中存放了每個方法的基本資料變數,物件的引用,操作指令,出口資訊等 本地方法棧 存放的是native方法 其他語言寫的 其他和虛擬機器棧一樣...

jvm記憶體模型

補充 可見性 乙個執行緒修改了變數,其他執行緒可以立即知道 保證可見性的方法 volatile synchronized unlock之前,寫變數值回主存 final 一旦初始化完成,其他執行緒就可見 有序性 在本執行緒內,操作都是有序的 重排或 主記憶體同步延時 指令重排 執行緒 內序列語義 寫後...