.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?類型分類
。。。。
(待續)