首頁  >  文章  >  後端開發  >  介紹C#中的堆疊和堆疊

介紹C#中的堆疊和堆疊

巴扎黑
巴扎黑原創
2017-09-06 11:16:001632瀏覽

1、什麼是堆?

    堆是一塊記憶體區域,在堆裡可以分配大塊的記憶體用來儲存某類型的資料物件;

  堆的特徵:

    1、堆裡面的特徵:

    1、堆裡面的記憶體能夠以任何順序存入和移除;

    2、不能顯示地刪除程式在堆裡面保存的資料;

    3、靠CLR的自動GC(垃圾收集器)判斷並自動清除無主的堆對象,然後釋放它;

    4、被釋放對象的記憶體可以被重複使用;

2、什麼是棧?

    棧是一個內存數組,是一個後進先出的數據結構;

  幾種數據類型:

    1、某些類型變量的值;

    2、程式目前的執行環境;

    3、傳遞給方法的參數;

  幾個普遍特徵:
##      幾個普遍特徵:
##    1、資料只能從的堆疊從堆疊。頂端插入和刪除;

    2、將資料放到棧頂成為入棧;

    3、從棧頂刪除資料成為出棧;

3、棧和和堆什麼差別?

    1、存放的資料類型不同;

    2、堆疊只能從頂端插入和刪除,堆疊能夠以任意順序存入和移除;

    3、棧記憶體無需管理,也不受GC管理。當棧頂元素使用完畢,立刻釋放。而堆則需要GC(Garbage collection:垃圾收集器)清理;

###    4、堆疊由系統自動分配,速度較快。但是無法控制。堆則是那些由new分配的記憶體區塊,他們的釋放編譯器不去管,由我們的應用程式去控制,一般速度比較慢,而且容易產生記憶體碎片.###

以上是介紹C#中的堆疊和堆疊的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn