目錄
- 什么是值類型,什么是引用類型
- 概念:
- 值類型和引用類型區別
什么是值類型,什么是引用類型
概念:
值類型直接存儲其值,而引用類型存儲對其值的引用。部署:托管堆上部署了所有引用類型。
引用類型:基類為Objcet
值類型:均隱式派生自System.ValueType
值類型:
byte,short,int,long,float,double,decimal,char,bool 和 struct 統稱為值類型。
引用類型:
string 和 class統稱為引用類型。
值類型和引用類型區別
1.值類型變量聲明后,不管是否已經賦值,編譯器為其分配內存。
2.引用類型當聲明一個類時,只在棧中分配一小片內存用于容納一個地址,而此時并沒有為其分配堆上的內存空間。當使用 new 創建一個類的實例時,分配堆上的空間,并把堆上空間的地址保存到棧上分配的小片空間中。
3.值類型的實例通常是在線程棧上分配的(靜態分配),但是在某些情形下可以存儲在堆中。
4.引用類型的對象總是在進程堆中分配(動態分配)。