java常見儲存空間
阿新 • • 發佈:2018-11-10
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儲存空間
沒有見過