[轉載]C#堆棧講解

來源:互聯網
上載者:User

標籤:執行個體   prot   繞口令   快速   參考型別   一個   變數   記憶體   inter   

 

1:棧就是堆棧,因為堆和堆棧這樣說太拗口了,搞得像繞口令,所以有些時候就把堆棧簡稱為棧。堆和棧,你看這又多舒服。但無論什麼時候,堆棧都不等於堆和棧,必須說,堆和棧或者堆和堆棧。  

2:實值型別變數和參考型別變數是儲存在棧裡面的。而實值型別變數儲存實值型別執行個體的值,參考型別變數儲存參考型別執行個體的引用。 對象的引用是儲存的指向堆中的地址的指標,堆中儲存的才是對象執行個體 

3:平時一個對象本身就包含有實值型別和對象的執行個體,這就要分清欄位和變數的概念。一般來說可以這樣講,在類裡面聲明的,是欄位,在方法裡面聲明的,是變數。欄位有存取修飾詞(public/private/protected/internal),變數沒有。

4:變數和欄位的區別,欄位和變數雖然用起來差不多,但實際上有很大的區別。變數永遠是儲存在棧裡面的,欄位跟隨類的執行個體走。

5:棧是一種滿足後進先出的表;堆是一種滿足父節點總不大於(或不小於)子節點的樹。不是一個對象執行個體就是一個堆(對象的成員就是一個節點),而是所有的對象執行個體是一個堆(一個對象只是堆中的節點)。

實值型別:

int

Float

Char

double

結構

………...

 

參考型別:

介面

數組

字串

1:實值型別的資料存放區在記憶體的堆棧中,從堆棧中可以快速存取這些資料,因此實值型別表示實際的資料。

2:參考型別表示指向儲存在記憶體堆中的資料的指標或引用。

3:資料釋放時,實值型別資料是自動釋放,而參考型別的資料需要記憶體回收行程來收回。

4:實值型別的預設值是:0,參考型別的預設值是:null

  對於實值型別的類,類的執行個體儲存在變數裡面,也就是類的執行個體跟隨變數儲存在棧上。  

  對於參考型別的類,類的執行個體儲存在託管堆上。  

  轉自:https://www.cnblogs.com/xiatianoo/p/4840819.html

[轉載]C#堆棧講解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.