【发布时间】:2016-02-07 07:53:43
【问题描述】:
我读了一篇让我对内存分配感到困惑的文章,其中指出:
单例对象存储在堆上,而静态类则存储在堆上。 存储在堆栈中。
但是在一些 Stackoverflow 问题中,比如
How is memory allocated for a static variable?
是这样描述的
静态变量存储在堆上,无论它们被声明为引用类型还是值类型。只有一个 无论创建多少个实例,总槽位。
所以我对静态类的堆栈或堆存储感到困惑。如何为静态类分配内存,为什么?单例类的内存是如何分配的?
【问题讨论】:
-
类不会占用内存,但对象会。存储在堆栈中的语句静态类对我来说听起来很荒谬。
-
@sriram 是的。静态变量呢?
-
@SivaRajini 静态变量存储在堆的某处。
-
如果你使用一个类的实例,它将存储在堆中,但堆中有一些区域用于静态和非静态变量。
标签: c# memory-management