.NET学习--类型、存储、变量

c#程序是一组类型声明。

类型是一种模板

  类型有哪些元素:名称(int);数据结构(Bytes);行为(16位整数)

栈和堆

  栈:是一组内存数组。只能从栈的顶端插入或删除数据。插入数据为入栈(push),删除数据为出栈(pop)。后进先出的数据结构。

  堆:是一块内存区域。堆里的内存可以任意顺序插入或删除。堆里的数据通过CLR中的GC删除。

  注:

    GC过程:

      a.在堆里保存了三个对象。

      b.其中一个对象不再被程序使用。

      c.GC发现此对象并释放它。

      d.被释放的对象内存可以被重用。

值类型和引用类型

  值类型和引用类型的对象在内存中存储方式不同。

  值类型:只需要一段单独的内存。用于存储实际数据。

  引用类型:需要二段内存。第一段存储实际数据。它总是存放在堆中。第二段是一个指向数据在堆中存储位置的引用。

  数据不是其他类型的成员:

    值类型:数据存放在栈中。

    引用类型:数据放在堆中,引用放在栈中。

  数据是其他类型的成员:

    引用类型对象数据始终存放在堆中。

    值类型对象或引用类型的引用部分按照实际环境存放在堆中或栈中。

变量:是一个名称,表示程序执行时存储在内存中数据。

  

猜你喜欢

转载自www.cnblogs.com/youny/p/11685589.html