jvm記憶體模型,分割槽。詳細到每個區都放什麼。
jvm記憶體模型按照執行緒分可分為執行緒獨佔和執行緒共享兩種.
執行緒獨佔本地方法棧,虛擬機器方法棧,程式計數器.
執行緒共享堆,方法區
首先本地方法棧:
本地方法棧放的就是本地方法的棧針,這種方法一般是由c語言底層寫的.通過jni呼叫.
虛擬機器方法棧:
它是以棧幀為單位儲存的.棧幀中包含
方法索引,輸入輸出引數,區域性變數八大基本型別,運算元棧,動態鏈結,父幀,子幀.
堆
堆是執行緒共享,儲存的是物件以及陣列例項,引用在方法棧中.
方法區
方法區主要儲存的是類資訊包括方法資訊,字段資訊,類名,並不是類例項,靜態變數常量,執行時常量池等等.
pc暫存器
因為pc暫存器是執行緒獨佔的,所以每個執行緒都有乙個暫存器.他不會發生記憶體溢位的情況因為他不會因為程式的執行而改變暫存器中資料所佔的空間.
它儲存的是程式虛擬機器位元組碼的位址.
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 一旦初始化完成,其他執行緒就可見 有序性 在本執行緒內,操作都是有序的 重排或 主記憶體同步延時 指令重排 執行緒 內序列語義 寫後...