之前的帖子涉及值和引用类型及其内存分配。
这里我试图了解静态成员的内存分配。
我有一个简单的类,它有静态和非静态整数,如下所示。
class Sample
{
public int nonStaticInt = 0;
public static int staticInt = 0;
}
我的问题是,静态整数驻留在哪里?堆叠/堆。他们如何在任何对象创建之前首先进入内存。
谢谢!
答案 0 :(得分:1)
分配静态变量时,它将作为Methodtable的一部分存储。 Methodtable表示在应用程序中第一次加载类时,将在appdomain中为类级变量和类内的方法分配单独的内存。
如果静态变量是基本类型,它将作为Methodtable的一部分存储。如果它是引用类型,它将存储在堆内,引用将存储在Methodtable
中