.NET 小结之内存模型
为什么要解.NET 的内存模型
在.NET下的内存管理、垃圾回收其实大部分不需要我们操心,因为大部分.NET已经帮我们做了,通常情况下也不需要考虑这些。但是如果想要了解一些.NET一些稍微“底层”的原理,如:“装箱、拆箱、对象生命周期等等”还是需要一点这方面的知识的。
内存模型初探 堆&&栈
园子中讨论堆和栈的文章很多,讲的都很不错,这里简单总结一下。
首先列出一些博文以供参考:
l http://www.cnblogs.com/seanps/archive/2009/01/22/1379807.html
l http://www.cnblogs.com/lxinxuan/archive/2007/01/24/629582.html
l http://www.cnblogs.com/lucifer1982/archive/2008/03/16/1108456.html
l http://www.cnblogs.com/happyhippy/archive/2007/04/12/710929.html
内存的管理分为三个过程:分配内存、使用内存、释放内存
而不同的类型数据分配在不同的内存空间上
l 引用类型的数据分配在Heap上,而这个值的引用分配在Stack上
l 值类型的数据分配在申明它的地方,即值类型的数据既可能分配在Stack上,又可能分配在Heap上面,主要看它申明在什么地方。
eg: 实例引自《你必须知道的.NET》
using System;
public class Test
{
static void Main()
{
MyStruct myStruct= new MyStruct();
MyClass myClass= new MyClass();
MyStruct myStruct2= new MyStruct();
myStruct2= myStruct;
MyClass myClass2= new MyClass();
myClass2= myClass;
}
}
结构体中的X分配在Stack上,而类中嵌套的X分配在Heap上。
详细了解:http://kb.cnblogs.com/page/42318/3/
.NET 类型分类
。。。。
(待续)