1.数据类型
值类型:赋值的时候是创建了一个副本,如,基本数据类型,枚举,结构
引用类型:赋值的是对象的引用,如,数组,类(基类 Object,字符串,自定义 class,delegate),接口
2.存储方式
引用类型:存储在堆中,类型实例化的时候,会在堆中开辟一部分空间存储类的实例,类对象的引用存储在栈中
值类型:值类型和指针分配在它声明的地方,做局部变量时,存储在栈上,做类对象的字段时,存储在堆中
1 Student S1;// S1是对象的引用 2 S1 = new Student(); // 实例化一个对象
3.堆
托管堆,不同于 C 的堆,由 CLR 管理,当堆满后,自动清理堆中的垃圾
4.栈
数据结构堆栈:一种数据结构,是一个概念
内存堆栈:内存分为栈区和堆区
:栈区存放函数参数,局部变量,返回值数据,由编译器自动释放
:堆区存放引用的对象,由CLR释放