存储对象实例在哪里?

时间:2012-02-27 07:07:54

标签: c#-4.0

当一个对象是一个类实例变量时,它是存储在堆中的吗?当它是一个函数变量时,它是否在堆栈中存储?这是对的吗?

2 个答案:

答案 0 :(得分:2)

Stack是存储方法和局部变量的内存位置。

堆是存储对象及其实例变量的内存位置。

现在,实例变量是没有“静态”字段修饰符的任何变量,它们在类体内和任何类的方法体外定义。

只要实例变量的封闭对象在范围内,它们就在范围内。实例变量是包含它的对象的一部分,不能独立于它。

希望它能清除你的概念。

答案 1 :(得分:0)

引用存储在堆栈中(尽管不是所有情况)

注意:仅适用于本地变量。例如,类变量,它们是对象的一部分,因此,在堆上。

对象存储在堆上。

  • 类对象,包括方法代码和静态字段:heap。
  • 对象,包括实例字段:heap。
  • 局部变量和对方法的调用:stack