黑马程序员技术交流社区

标题: 内存空间问题 [打印本页]

作者: 孤神法法    时间: 2014-3-17 11:55
标题: 内存空间问题
本帖最后由 孤神法法 于 2014-3-17 14:28 编辑

平时我们在堆中用new开辟一块内存空间,那么这个空间什么时候释放的?我们并没有认为的去释放我们开辟的内存空间
作者: 张变    时间: 2014-3-17 12:06
垃圾处理器会帮你处理掉
作者: mdb    时间: 2014-3-17 14:24
如果不再继续使用,那么GC垃圾回收器会自动帮你回收NEW出来的内存,但是什么时候回收并不确定。
作者: 鬼鬼    时间: 2014-3-17 15:00
由CLR(公共语言运行时)负责垃圾回收,但是回收时间是不确定的。所以对于占用资源的类实例应在使用完毕后手动调用Dispose()方法释放资源,或者对于继承了IDisposable的类实例可以使用using(……){……}在相关实例使用完毕后自动释放资源。
作者: 百川    时间: 2014-3-17 15:04


垃圾回收原理和视频当中的方法调用时的内存流程有相通的地方:
c#中垃圾回收器将分配给他的对象分为3个类别或代。
1、方法调用返回时会去除被引用的方法的引用,并把它交给垃圾处理器,
2、当请求为新的方法对象分配内存空间且缓存不够时会启动第0代清理,并将当前正在使用的对象交给上一代,第0代传给第1代,第1代传给第2代。
3、第0代清理后内存仍 不能满足内存请求时启动第1代清理,之后是第2代。






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2