天天看點

JVM 堆棧區域資料存放流程

在java程式運作過程中,jvm定義了各種區域用于存儲運作時資料。其中的有些資料區域在jvm啟動時建立,并隻在jvm退出時銷毀。其它的資料區域與每個線程相關。這些資料區域,線上程建立時建立,線上程退出時銷毀。

jvm 由3部分組成:

棧區

---------------------------------

基礎資料類型 byte short int long float double char boolean

方法的形式參數,方法調用完後從棧空間回收

引用對象的位址,引用完後,棧空間位址立即被回收,堆空間等待gc

棧内的資料線程之間獨立

具體劃分為:基本類型變量區、執行環境上下文、操作指令區

堆區

this

new 出來的對象

數組

jvm隻有一個堆區,并被所有線程共享

方法區(又叫靜态區和永久區)

字元串常量

static

所有class

被所有線程共享, 其記憶體放程式中永遠唯一的元素

案例分析:

JVM 堆棧區域資料存放流程

執行分析說明:

下面再補充幾個圖,進一步了解:

JVM 堆棧區域資料存放流程
JVM 堆棧區域資料存放流程
JVM 堆棧區域資料存放流程