值类型和引用类型的区别
来源:互联网 发布:亚历山大汉密尔顿知乎 编辑:程序博客网 时间:2024/05/01 16:34
引用类型的数据有:class,interface,delegate,object,string,null类型,数组,datetime等。
值类型:一般的数据类型,枚举,struct等等。
两种数据类型最主要是在内存中的存储位置不同——堆和栈。
1、值类型和引用类型在内存中的存储方式:
1)值类型只需要一段单独的内存空间,存放实际的数据;数据存放在栈中。
2)引用类型需要两段内存空间,一段存放实际的数据,存放在堆中;一段存放指向数据地址的引用,存放在栈中、
2、存储引用类型对象的成员
当一个引用类型对象他含有值类型的成员时,他的成员也是存储在堆中,也就是说,对于一个引用类型的任何对象,他的所有成员对存放在堆里,不管是值类型还是引用类型。
3、值类型继承自System.ValueType,引用类型继承自System.Object
4、值类型的效率高,不需要地址转换
5、内存回收:值类型出栈及使用完后立即回收;引用类型使用完后不会立即回收,而是交给GC处理
6、类型扩展:值类型不容易扩展,所有值类型都是seal的,无法重写或继承,派生出新的值类型;而引用类型具有多态特性
0 0
- 值类型和引用类型的区别
- 值类型和引用类型的区别
- 值类型和引用类型的区别
- 值类型和引用类型的区别
- 值类型和引用类型的区别
- 值类型和引用类型的区别
- 值类型和引用类型的区别
- 值类型和引用类型的区别
- 值类型和引用类型的区别 .
- 值类型和引用类型的区别
- 值类型和引用类型的区别
- 值类型和引用类型的区别
- 值类型和引用类型的区别
- 值类型和引用类型的区别
- 值类型和引用类型的区别
- 值类型和引用类型的区别
- 值类型和引用类型的区别
- 值类型和引用类型的区别
- sizeof、strlen
- WD蓝盘绿盘黑盘红盘的区别
- ios 深浅拷贝学习
- android学习导航
- 在 Ubuntu12.04 上安装Hadoop-1.2.1 (讲解的非常详细)
- 值类型和引用类型的区别
- c#ArrayList用法
- Eclipse下在github托管代码
- tabindex="-1"
- CentOS6.5下安装Redis2.8.6和phpredis2.2.4扩展
- [Java]读取文件方法
- Android数据存储加密
- POJ 3304 直线与线段关系
- C++ char*,const char*,string的相互转换