黑马程序员技术交流社区
标题:
垃圾回收?
[打印本页]
作者:
徐宏伟
时间:
2012-9-10 11:30
标题:
垃圾回收?
1、在C++里面,每当我们需要一块内存的时候,就得自己去申请,等自己用完之后就得自己处理或者说成是清理,有点自给自足的意思;
2、在C#里面,我们每当需要一块空间(内存)的时候,我们果断拉出我们的法宝关键字“new”,然后就使劲的用,用完之后就拍屁股走人,有点富二代的意思;
3、这些话说都是伟大的微软给我们做的,微软就是我们的服务员;
但是我想知道的是在C++里面只要一不小心就会涉及到内存泄露,不知道在C#里面会不会出现内存泄露呢?如果有的话,都是在哪些情况下泄露的?泄露之后如何处理?
作者:
许庭洲
时间:
2012-9-10 11:36
在C#里面有GC 这个垃圾自动回收机制,由于GC的回收发生的时间是不确定的,偶尔发生程序死机是有可能的,但在垃圾处理机制来看C#比起C++强多了。
作者:
李京
时间:
2012-9-10 15:55
如何你了解CLR真正的垃圾回收机制,就应该知道:其实我们甚至不能显示地释放内存,垃圾收集器会按照一定的算法在特定的时候回收不再被使用的内存空间(摘自《.net框架程序设计》)。所以很多书讲用完之后的dispose和置空引用本质上是“白忙”的!它至多能提早让那些变量变成垃圾罢了。如果你想如此,最好就用using关键字,举个简单的例子:
using(Graphics.Path p=new Graphics.Path())
{
//这里就不用再 p.Dispose(),因为会自动调用
}
作者:
徐宏伟
时间:
2012-9-11 20:59
许庭洲 发表于 2012-9-10 11:36
在C#里面有GC 这个垃圾自动回收机制,由于GC的回收发生的时间是不确定的,偶尔发生程序死机是有可能的,但 ...
难道我们就不用多考虑什么?尽情的挥洒new………………
作者:
李健_8
时间:
2012-9-17 02:01
Java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。oh,yeah
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2