日本好好热aⅴ|国产99视频精品免费观看|日本成人aV在线|久热香蕉国产在线

  • <cite id="ikgdy"><table id="ikgdy"></table></cite>
    1. 西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
      軟件
      軟件
      文章
      搜索

      首頁編程開發(fā)C#.NET → c#新手對棧與堆的理解

      c#新手對棧與堆的理解

      相關(guān)軟件相關(guān)文章發(fā)表評論 來源:本站整理時(shí)間:2010/11/29 15:03:32字體大。A-A+

      作者:佚名點(diǎn)擊:95次評論:1次標(biāo)簽: java class object

      e棧快遞俠app2.2.0手機(jī)版
      • 類型:生活服務(wù)大小:12.8M語言:中文 評分:10.0
      • 標(biāo)簽:
      立即下載
      最近在公司實(shí)習(xí),主要業(yè)務(wù)是工業(yè)軟件,用.net開發(fā),說實(shí)話我之前一直用java的。c#都沒怎么接觸過,所以打算每天寫點(diǎn)隨筆,鑒證我的學(xué)習(xí)過程。

      下面是我對棧與堆的理解(純個(gè)人觀點(diǎn)):

      1.首先對于值類型是直接把變量的值保存在棧中的,而引用類型則把數(shù)據(jù)的地址保存在棧中,而實(shí)際數(shù)據(jù)則保存在堆中。

      2.棧:在內(nèi)存中存儲的是固定長度的數(shù)據(jù)(如:int是4個(gè)字節(jié))。堆:存儲的是可變長度的數(shù)據(jù)(如string)。

      3.在c#中還提到了托管堆,這其實(shí)是.net不同于其他語言的地方,它存儲的是引用類型如類,對象并受垃圾收集器的控制和管理。

      例:

      1. class1 object1;

      2. object1=new class1();

      第一句定義了class1的引用,實(shí)質(zhì)上就是在棧中分配了一個(gè)4個(gè)字節(jié)的空間,用來存儲實(shí)例化后對象在托管堆中的地址。

      第二句實(shí)例化object1對象,實(shí)質(zhì)上就是在托管堆中開辟了內(nèi)存空間來存儲類class1的一個(gè)具體對象。由此可知,c#不讓使用未實(shí)例化的對象是因?yàn)檫@

      個(gè)對象在托管堆中還不存在。當(dāng)對象不再使用,這個(gè)存在棧中的引用變量會被刪除,但是托管堆中這個(gè)引用指向的對象還是存在的,其空間何時(shí)被釋放

      取決于垃圾收集器而不是引用變量失去作用域。管理的

      4.c#除了引用類型的變量,還存在值類型和其他托管堆不能管理的對象,如文件名柄,網(wǎng)絡(luò)連接和數(shù)據(jù)庫連接,這些變量的釋放就需要通過析構(gòu)函數(shù)或

      IDisponse借口來做。

        相關(guān)評論

        閱讀本文后您有什么感想? 已有人給出評價(jià)!

        • 8 喜歡喜歡
        • 3 頂
        • 1 難過難過
        • 5 囧
        • 3 圍觀圍觀
        • 2 無聊無聊

        熱門評論

        最新評論

        發(fā)表評論 查看所有評論(1)

        昵稱:
        表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
        字?jǐn)?shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)