国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

淺談“棧和堆”

2019-11-14 15:57:20
字體:
來源:轉載
供稿:網友

對于一些新人可能會不理解棧和堆是什么,在這里我簡單介紹一下:

程序運行時,它的數據必須存儲在內存中。一個數據項需要多大的內存、存儲在什么地方、以及如何存儲都依賴與該數據項的類型。

運行中的程序使用兩個內存區域來存儲數據:棧和堆。

 

首先,什么是“棧”?

棧是一個內存數組,是一個LIFO(last-in  first-out,后進先出)的數據結構。棧存儲幾種類型的數據:

  • 某些類型變量的值
  • 程序當前的執行環境
  • 傳遞給方法的參數

棧的特征:

棧有如下幾個普遍特征:

  • 數據只能從棧的頂端插入和刪除
  • 把數據放到棧頂稱為入棧(push)
  • 從棧頂刪除數據稱為出棧(pop)

什么是“堆”?

堆是一塊內存區域,在堆里可以分配大塊的內存用于存儲某類型的數據。與棧不同,堆里的內存可以任意順序存入和移除。

雖然程序可以在堆里保存數據,但并不能顯示地刪除它們。CLR的自動GC(Garbage Collector,垃圾收集器)在判斷出程序的

代碼將不會再訪問某數據項是,自動清除無助的堆對象。我們因此可以不再操心這項使用其他編程語言時非常容易出錯的工作了。

 

堆棧空間分配:

棧(操作系統):由操作系統自動分配釋放 ,存放函數的參數值,局部變量的值等。其操作方式類似于數據結構中的棧。
堆(操作系統): 一般由程序員分配釋放, 若程序員不釋放,程序結束時可能由OS回收,分配方式倒是類似于鏈表。

 

總之:堆,隊列優先,先進先出,棧,先進后出,而且棧的存取速度比堆快。

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 寿阳县| 彰化市| 万安县| 和静县| 唐海县| 冷水江市| 山丹县| 南阳市| 永川市| 萝北县| 囊谦县| 松潘县| 开封县| 井研县| 沂源县| 平陆县| 内黄县| 湖州市| 咸阳市| 东阿县| 洛浦县| 广饶县| 婺源县| 红原县| 浦北县| 普安县| 花莲市| 鄂托克旗| 扬中市| 鹤岗市| 白河县| 九龙县| 海安县| 呼和浩特市| 福泉市| 刚察县| 永德县| 永德县| 丰顺县| 三亚市| 海宁市|