首页 文章

哪里存储引用堆内存的引用类型?

提问于
浏览
3

简单的代码例如:

Object test=new Object();

我理解为 test 对象的内存分配到堆中 .

从MSDN引用:

引用类型的变量存储对其数据(对象)的引用

但我真的无法理解存储此变量值(引用堆数据),堆栈或堆入或其他地方的位置?

1 回答

  • 5

    test 变量存储在堆栈中 - 它保存堆上对象的地址 . 对象实例存储在堆上 .

    我建议你阅读杰弗里里希特的文章:717721_:

    从托管堆分配对象时,new运算符返回对象的内存地址 . 您通常将此地址存储在变量中 . 这称为引用类型变量,因为变量实际上不包含对象的位;相反,变量引用对象的位 . 除了引用类型之外,虚拟对象系统还支持称为值类型的轻量级类型 . 无法在垃圾回收堆上分配值类型对象,表示对象的变量不包含指向对象的指针;变量包含对象本身 . 由于变量包含对象,因此不必取消引用指针以操纵对象 . 当然,这可以提高性能 .

相关问题