方法執行時記憶體變化

2021-10-12 08:35:20 字數 605 閱讀 1775

//區域性變數:只在方法體中有效,方法結束之後,區域性變數的記憶體就釋放了

//jvm三塊主要的記憶體:棧記憶體、堆記憶體、方法區記憶體

//方法去最先有資料:方法區中存放**片段、clas位元組碼

//堆記憶體:後面會學到

//棧記憶體:方法呼叫的時候,該方法需要的記憶體空間在棧中分配

//棧記憶體儲存方法執行時的記憶體空間以及區域性變數

//方法不呼叫,不會在棧中分配空間

//方法只有在呼叫的時候才會在棧中分配空間,並且呼叫時就是壓棧

//方法執行結束之後,該方法所需要的空間就會釋放,此時發生彈棧動作

//方法呼叫叫做:壓棧——分配空間

//方法結束叫做:彈棧——釋放空間

public

class

methodtest08

public

static

voidm1(

int i)

public

static

voidm2(

int i)

public

static

voidm3(

int i)

}

程式執行時的記憶體

當乙個源 通過gcc編譯成a.out,執行a.out時 程式便開始了執行之旅 即程序 作業系統為程序分配堆疊空間,隨後把程式執行碼放入文字段,把程式經過初始化的全域性變數和靜態變數放入data 把程式為初始化的全域性變數和靜態變數放入bss段 並對bss段資料初始化為0 之後cpu 段指標指向mai...

程式執行時記憶體管理

1,管理執行階段記憶體空間分配 malloc new int pn new int 儲存的型別,記憶體根據此設定相應儲存位元組的記憶體 pn是記憶體位址 所以 當宣告乙個變數的指標變數時沒初始化,宣告後再來初始化則pn 接收的應該是變數在記憶體中的位址 variablename pn是儲存在記憶體的...

程式執行時的記憶體分配

一 在程式執行期間,變數儲存空間有三種 1 靜態儲存區。內存在程式編譯的時候就已經分配好了,這塊內存在程式執行期間都存在,儲存全域性變數和靜態變數。2 棧儲存區。記憶體是在程式執行期間才分配的,函式內區域性變數及函式引數的儲存單元,當 函式執行結束時這些儲存單元自動被釋放。棧記憶體分配運算內置於處理...