介紹C#中的堆和棧

來源:互聯網
上載者:User
1、什麼是堆?

    堆是一塊記憶體地區,在堆裡可以分配大塊的記憶體用於儲存某類型的資料對象;

  堆的特徵:

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

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

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

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

2、什麼是棧?

    棧是一個記憶體數組,是一個後進先出的資料結構;

  幾種資料類型:

    1、某些類型變數的值;

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

    3、傳遞給方法的參數;

  幾個普遍特徵:

    1、資料只能從棧的頂端插入和刪除;

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

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

3、棧和堆什麼區別?

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

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

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

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.