代码改变世界

随笔档案-2011年8月24日

.net 垃圾回收学习【.net 框架程序设计】[CH19: 自动内存管理]

2011-08-24 20:25 by 一一九九, 278 阅读, 收藏,
摘要: 19.1 基本原理解析(一)访问一个资源所需要的几个步骤:为类型实例分配一定的空间初始化内存, 设置资源的初始化状态访问类型成员来使用资源。销毁资源状态,执行清理工作。释放内存。 由于垃圾收集器对内存中的类型表示何种资源一无所知,所以垃圾收集器对第四步并不清楚如何执行,为了使资源得到正确的清理,开发人员必须自己编写执行这部分工作的代码。大多数类型,比如Int32,Point,String,ArrayList 以及SerializationInfo,标识的资源并不需要特殊的清理操作。例如: 一个Point资源完全可以通过销毁对象内存中的X字段和Y字段来完成清理工作。另一方面,对于一个表示(或者说 阅读全文

.net垃圾回收学些【The Truth of garbage collection】【续】

2011-08-24 17:32 by 一一九九, 210 阅读, 收藏,
摘要: From: http://java.sun.com/docs/books/performance/1st_edition/html/JPAppGC.fm.html#998394Reference Objects 在JAVA2之前,所有的引用都是强引用。 这意味着开发人员没有任何方式和GC进行交互,除了通过像System.gc等强制方法。 JAVA2引入了java.lang.ref Package。 图A-4显示了这个包中的类的层级结构。这个包定义了reference-object类,通过这些类可以和GC进行有限的交互。 Reference Object用来维护某个对象的引用,此时GC仍然能够回 阅读全文