java的記憶體分配方法

2021-07-23 08:45:54 字數 721 閱讀 7516

記憶體分配方法主要可以分為:

堆(heap)

靜態區域(由static修飾)

棧(stack)

常量池

其中,堆和常量池主要存放「=」右邊的「值」。而棧和靜態區域則主要存放「=」左邊的變數(名)或者引用(名)。

舉幾個栗子:

1

.string str = "abc";  static int a = 10;

str---->stack      (因為是

變數名)     a---->static區域(因為有static修飾且為變數名)

10---->常量池

2.

string str=new string("abc");

str---->stack      (因為是

變數名物件的引用)

new string()---->heap (生成的物件,棧中的引用指向堆中的這個物件)

"abc"---->常量池

linux記憶體分配方法總結

記憶體對映結構 1.32位位址線定址4g的記憶體空間,其中0 3g為使用者程式所獨有,3g 4g為核心占有。2.struct page 整個物理內存在初始化時,每個4kb頁面生成乙個對應的struct page結構,這個page結構就獨一無二的代表這個物理記憶體頁面,並存放在mem map全域性陣列...

記憶體分配方式

記憶體分配方式有三種 1 從靜態儲存區域分配。內存在程式編譯的時候就已經分配好,這塊內存在程式的 整個執行期間都存在。例如全域性變數,static 變數。2 在棧上建立。在執行函式時,函式內區域性變數的儲存單元都可以在棧上建立,函 數執行結束時這些儲存單元自動被釋放。棧記憶體分配運算內置於處理器的指...

記憶體分配方式

記憶體分配方式有三種 1 從靜態儲存區域分配。內存在程式編譯的時候就已經分配好,這塊內存在程式的整個 執行期間都存在。例如全域性變數,static變數。2 在棧上建立。在執行函式時,函式內區域性變數的儲存單元都可以在棧上建立,函式執 行結束時這些儲存單元自動被釋放。棧記憶體分配運算內置於處理器的指令...