麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

值類型和引用類型

2019-11-14 13:58:24
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

先簡(jiǎn)單介紹一下它們:

嚴(yán)格來(lái)說(shuō)應(yīng)該是下面的這些:值類型包括:結(jié)構(gòu)體(數(shù)值類型,bool型,用戶定義的結(jié)構(gòu)體),枚舉,可空類型。

引用類型包括:數(shù)組,用戶定義的類、接口、委托,object,字符串

為什么要設(shè)計(jì)值類型:

  1. 值類型不需要從托管堆分配
  2. 引用類型產(chǎn)生的實(shí)例對(duì)象在托管堆上都會(huì)有一些額外的成員,這些成員必須初始化
  3. 值類型不使用GC垃圾回收控制,作用域結(jié)束后,會(huì)自行釋放。

     綜上,值類型更有效率,所以在.NET中將一些簡(jiǎn)單的,常用的,內(nèi)存占用小的對(duì)象設(shè)置為值類型,大大提高了整個(gè)CLR的效率。

 

裝箱與拆箱:

     為什么會(huì)發(fā)生裝箱:

         因?yàn)橹殿愋团c引用類型在CLR中的內(nèi)存管理方式不同,所以當(dāng)值類型在程序中需要向引用類型轉(zhuǎn)化的時(shí)候就會(huì)發(fā)生裝箱。也就是當(dāng)值類型的實(shí)例對(duì)象需要在一個(gè)程序作用域的場(chǎng)景下,轉(zhuǎn)化成為不從System.ValueType繼承的另外一個(gè)類型的對(duì)象時(shí),裝箱就會(huì)發(fā)生。

      裝箱有什么危害:

          因?yàn)樵O(shè)計(jì)值類型的本意是為了提升效率。但是當(dāng)裝箱發(fā)生時(shí),值類型會(huì)轉(zhuǎn)化成為引用類型,這個(gè)時(shí)候,效率沒(méi)有得到任何提高。反而因?yàn)檠b箱,拆箱有可能重復(fù)多次的發(fā)生,反而讓效率更受影響。

 

 

值類型和引用類型的區(qū)別:

1.    值類型的數(shù)據(jù)存儲(chǔ)在內(nèi)存的棧中;引用類型的數(shù)據(jù)存儲(chǔ)在內(nèi)存的堆中,而內(nèi)存單元中只存放堆中對(duì)象的
地址。

2.     值類型存取速度快,引用類型存取速度慢。

3.     值類型表示實(shí)際數(shù)據(jù),引用類型表示指向存儲(chǔ)在內(nèi)存堆中的數(shù)據(jù)的指針或引用

4.     值類型繼承自System.ValueType,引用類型繼承自System.Object

5.     棧的內(nèi)存分配是自動(dòng)釋放;而堆在.NET中會(huì)有GC來(lái)釋放       

6.      值類型的變量直接存放實(shí)際的數(shù)據(jù),而引用類型的變量存放的則是數(shù)據(jù)的地址,即對(duì)象的引用。


7. 值類型變量直接把變量的值保存在堆棧中,引用類型的變量把實(shí)際數(shù)據(jù)的地址保存在堆棧中,而實(shí)際

數(shù)據(jù)則保存在堆中。注意,堆和堆棧是兩個(gè)不同的概念,在內(nèi)存中的存儲(chǔ)位置也不相同,堆一般用于存儲(chǔ)

可變長(zhǎng)度的數(shù)據(jù),如字符串類型;而堆棧則用于存儲(chǔ)固定長(zhǎng)度的數(shù)據(jù),如整型類型的數(shù)據(jù)int(每個(gè)int變量

占用四個(gè)字節(jié))。由數(shù)據(jù)存儲(chǔ)的位置可以得知,當(dāng)把一個(gè)值變量賦給另一個(gè)值變量時(shí),會(huì)在堆棧中保存兩

個(gè)完全相同的值;而把一個(gè)引用變量賦給另一個(gè)引用變量,則會(huì)在堆棧中保存對(duì)同一個(gè)堆位置的兩個(gè)引用

,即在堆棧中保存的是同一個(gè)堆的地址。在進(jìn)行數(shù)據(jù)操作時(shí),對(duì)于值類型,由于每個(gè)變量都有自己的值,

因此對(duì)一個(gè)變量的操作不會(huì)影響到其它變量;對(duì)于引用類型的變量,對(duì)一個(gè)變量的數(shù)據(jù)進(jìn)行操作就是對(duì)這

個(gè)變量在堆中的數(shù)據(jù)進(jìn)行操作,如果兩個(gè)引用類型的變量引用同一個(gè)對(duì)象,實(shí)際含義就是它們?cè)诙褩V斜?/p>

存的堆的地址相同,因此對(duì)一個(gè)變量的操作就會(huì)影響到引用同一個(gè)對(duì)象的另一個(gè)變量。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 久久精品久久久久 | 国产亚洲精彩视频 | 日产精品一区二区三区在线观看 | 国产韩国精品一区二区三区久久 | vidz 98hd| 欧美一级特黄aaaaaa在线看首页 | 91精品国产综合久久久动漫日韩 | 日韩.www| 久久精品一区二区三区国产主播 | av在线播放电影 | 午夜久久视频 | 成年人黄色片视频 | 一级大片在线观看 | 欧美日韩中文字幕在线视频 | 美国一级黄色毛片 | 欧美综合在线观看 | 麻豆一二区| 免费视频一区 | av观看国产 | 一级毛片免费观看在线 | 色综合久久久久久 | 久久久久久久一区二区三区 | 黄污网址 | 国产一国产精品一级毛片 | 亚欧美一区二区 | 天天好比网 | 精品一区二区三区免费爱 | 久久久成人免费视频 | 色视频一区二区 | 中午字幕无线码一区2020 | 在线中文资源免费 | 久久色网站 | 91九色视频在线播放 | 国产精品久久久久国产精品三级 | 2021国产精品 | 日韩精品网站在线观看 | 国语自产免费精品视频在 | 欧美成人精品一区二区男人小说 | 思思久而久而蕉人 | 一区二区三区日韩 | 免费日韩片 |