我有一个非常基本的问题。
我写了一个这样的循环:
while(true)
{
MyTestClass myObject = new MyTestClass();
}
- 对象将在什么时候创建
循环,垃圾收集?
- 另外,对于每次迭代,是
新的内存位置是
分配给 myObject 引用?
- 如果我写怎么办
myObject = null;
在每次迭代结束时?
- 坦白说,只要 GC 愿意,就可以;该变量永远不会被读取,因此它始终符合条件
-
myObject
is the variable- 在堆栈上有固定位置以供参考;然而,每个new MyTestClass()
是一个不同的object,在可用堆空间中的某个位置创建;每次都不同
- 没有任何区别;严格来说,存在一些复杂性,涉及变量的实际声明点(在 IL 中)以及如何
while
实际上已实现 - 但只有在退出循环后才会显示。并且由于在每次迭代中您都会立即分配它,因此没有tangible区别在这里
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)