1. 程式人生 > >java常見儲存空間

java常見儲存空間

1,暫存器(Registers)

這是速度最快的儲存場所,程式設計師不僅無法直接觸碰暫存器,也沒辦法在程式裡面感受到暫存器的存在

2,棧(Stack)

位於一般的RAM中,處理器經由stack pointer提供直接支援。當程式分配一塊新的內容的時候,stack指標便往後移。釋放記憶體的時候,指標就往前移回。由於JAVA編譯器有責任產生這種“將stack指標前後移動”的程式碼,所以它必須掌握程式中“存在stack指標中所有資料的大小和存活時間”。由於這個限制,儘管我們可以將preference存放在stack中,但是卻不能將一般的物件存放在stack中。

3,堆(Heap)

Heap是一種通用性質的記憶體儲存空間(也存在與RAM++),用來置放所有的java物件,Heap勝過Stack之處是,編譯器不需要知道從Heap分配的空間需要多大,也不需要知道空間存活時間,因此,heap分配記憶體有高度的彈性。當需要產生物件的時候,只需在程式中new,那麼執行的時候,便會自動heap分配空間。

4,靜態儲存空間(Static storage)

靜態指的是“在固定位置上”(也是在RAM中),中間存放著“程式執行期間”一直存在的資料。可以用static關鍵字,將物件內的某個特定成員設為靜態,但是java物件本身是不可能在靜態區中,

5,常量儲存空間(Constant storage)

常量值不會變,所以是安全的。也可以放到只讀記憶體ROM中,

6,Non-RAM儲存空間

沒有見過