2010-10-31 70 views
3

存储静态变量和方法。 堆或堆栈以及如何在不使用时释放这些内存静态存储器管理

+0

你能否给我提供一点你想要完成的内容。 – 2010-10-31 07:57:26

回答

4

静态变量存储在堆上。我不确定你的方法是什么意思,但是方法的局部变量存储在堆栈中。

退出方法时释放堆栈。当一个方法需要局部变量时,会分配更多的堆栈。当方法退出时,内存被释放。

内存的其余部分放在堆上,例如,与new运营商。一旦你释放所有对象引用这个被释放:

Car myCar = new Car(); 

// Use your car. 

myCar = null; 

// Somewhere between this point and when your application 
// exits, the memory will be released. 

这同样适用于静态的变量,但如果你想使他们有资格进行垃圾回收,必须专门设置这些来null

有关.NET内存管理的更多信息,Google搜索结果http://www.google.com/search?q=memory+management+.net+heap+stack提供了一些不错的文章。

+0

所以假设我们有一个静态密钥工作方法b4它。所以我的意思是这种方法分配堆或堆栈中的内存,如果在一些静态内存然后当我们不使用这种方法如何它的内存被释放这个我想知道 – NoviceToDotNet 2010-10-31 07:54:35

+0

如何一个方法,我可以明确地设置为GC – NoviceToDotNet 2010-10-31 07:55:03

+0

A静态方法只是一种方法。该方法的局部变量只是在堆栈上。静态方法本身不使用内存,只有参数和局部变量都在堆栈中。 – 2010-10-31 07:56:18

1

This article给出了一个很好的解释:静态变量存储在.net的堆的特殊区域中。

+0

仍然那篇文章缺乏一些点我会列出所有后来什么让我非常困惑 – NoviceToDotNet 2010-10-31 08:17:04