欢迎各界计算机爱好者加入,弘扬极客精神!

.Net中的自动垃圾收集是什么?它给.Net平台下的编程带来什么变化?

0 喜欢 0 不喜欢
.Net中的自动垃圾收集是什么?它给.Net平台下的编程带来什么变化?
最新提问 9月 10, 2016 分类:C# | 用户: 0_0 (110 分)  

2 个回答

0 喜欢 0 不喜欢
 
已采纳

.Net垃圾收集器负责整个.Net运行时受管代码的内存分配与释放任务。它通过一定的优化算法来选择收集的对象和时间。程序员只有在释放大量受管资源时可以进行立即强制垃圾收集,在释放非受管资源时采用终止化(Finalize)操作来处理,需要在程序运行中释放的应该实现Dispose()方法,并明确调用。其它时间将资源的回收交由.Net垃圾收集起来做。

最新回答 9月 10, 2016 用户: 0_0 (110 分)  
采纳于 9月 10, 2016 用户:0_0
0 喜欢 0 不喜欢

垃圾收集器使用户内存管理自动化。在以前的C++中,你必须用“malloc”或者“new”来分配内存,然后在适当的时候释放内存。你必须保证在释放之前内存没有被别人使用,如果你把内存给了别人,往往你就不确定应该何时释放内存了。当你释放了内存,不知道别人正在使用这块内存时,就产生了程序崩溃的问题。所以,当你显式进行“new”和“delete”时,内存管理是一个复杂的问题,并且,此时你的代码不可组合。要么你必须确定对自己的内存有完全的控制,因此,要达到这种完全隔离的目的,你必须在将内存传递给别的模块时进行完全拷贝,这样,别的模块就只对这个完全拷贝的内存负责。要么你就得在某个地方形成对整个内存池的统一的管理,这就是自动化内存管理,这就是垃圾收集器的工作。

最新回答 9月 10, 2016 用户: 多肉肉肉 (3,456 分)  
...