1. 程式人生 > >關於堆區和棧區的淺顯理解

關於堆區和棧區的淺顯理解

堆、棧區別總結:

1.堆疊空間分配

①棧(作業系統):由作業系統自動分配釋放 ,存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。

②堆(作業系統): 由程式動態分配和釋放記憶體。

2.堆疊快取方式

①棧使用的是一級快取, 他們通常都是被呼叫時處於儲存空間中,呼叫完畢立即釋放。

②堆則是存放在二級快取中,生命週期由虛擬機器的垃圾回收演算法來決定。所以呼叫這些物件的速度要相對來得低一些。

3.堆疊資料結構區別

①堆(資料結構):堆可以被看成是一棵樹,如:堆排序。

②棧(資料結構):一種先進後出的資料結構。
棧是一個後進先出,先進後出的壓入彈簧式的資料結構,在程式執行時,每次向棧中壓入一個物件,棧指標就會向下移動一個位置,當系統從棧中彈出一個物件,最後進棧的物件將被彈出,然後棧指標向上移動一個位置。