• 正文
  • 相關推薦
  • 電子產業(yè)圖譜
申請入駐 產業(yè)圖譜

堆棧的區(qū)別

2021/04/06
908
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

硬件型號:華為 Mate 40

系統(tǒng)版本:EMUI 11.0

堆棧的區(qū)別:

1、堆棧空間分配方式不同

堆(操作系統(tǒng)): 一般由程序員分配釋放, 若程序員不釋放,程序結束時可能由OS回收,分配方式類似于鏈表。

棧(操作系統(tǒng)):由操作系統(tǒng)(編譯器)自動分配釋放,存放函數(shù)的參數(shù)值,局部變量的值等。其操作方式類似于數(shù)據(jù)結構中的棧。

2、堆棧緩存方式不同

棧使用的是一級緩存,它們通常都是被調用時處于存儲空間中,調用完畢立即釋放。

堆則是存放在二級緩存中,生命周期由虛擬機的垃圾回收算法來決定(并不是一旦成為孤兒對象就能被回收)。所以調用這些對象的速度要相對來得低一些。

3、堆棧數(shù)據(jù)結構不同

堆(數(shù)據(jù)結構):堆可以被看成是一棵樹,如:堆排序。

棧(數(shù)據(jù)結構):一種先進后出的數(shù)據(jù)結構。

相關推薦

電子產業(yè)圖譜