c#的垃圾对象何时被回收?
在看书中,有这么一段话:"当处理newobj(cil 的new指令)指令时,如果CLR判定托管堆没有足够的空间来分配所请求的类型,它会执行一次垃圾回收来尝试释放内存".也就是说如果托管堆没有足够的内存来分配所请求的对象,就会进行垃圾回收.
那么这段话是不是可以这样理解:
1,对象已经没用了,但是接下来没有分配内存的操作,所以一直也不会进行垃圾回收.
2,对象已经没有用了,虽然接下来还有分配内存的操作,但是内存空间足够,所以也一直不会进行垃圾回收.
这样垃圾对象就会一直在托管堆存在.
是这样理解吗?