本站首页    管理页面    写新日志    退出

«September 2025»
123456
78910111213
14151617181920
21222324252627
282930


公告

  如果你忍了,欺负你的人将来可能就进监狱了。如果你反击,欺负你的人将来可能就获选十大杰出青年了。

        QQ: 3159671

http://greenboy.javaeye.com/

http://blog.sina.com.cn/u/1278341164 小鸟吹烟


我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:小鸟吹烟
日志总数:157
评论数量:424
留言数量:-1
访问次数:1258158
建立时间:2006年10月23日




[J2SE]处理40万行记录OutOfMemory--内存泄漏优化
随笔,  心得体会,  软件技术

tone 发表于 2006/12/5 10:39:28

 首先将40万行分解成3万每次,然后使用各种内存优化方法回收内存   对象的强、软、弱和虚引用.     1.强引用(StrongReference)       引用实际上都是强引用,这是使用最普遍的引用。如果一个对象 具有强引用,垃圾回收器绝不会回收它。当内存空 间不足, Java 虚拟机宁愿抛出OutOfMemoryError 错误,使程序异常终止,也不会靠随 意回收具有强引用的对象来解决内存不足的问题。       2.软引用(SoftReference)       如果一个对象只具有软引用,如果内存空间足 够,垃圾回收器就不会回收它,如果内存空间不足了,就会回收这些对象的内存。只 要垃圾回收器没有回收它,该对象就可以被程序使用。软引用可用来实现内存敏感的 高速缓存。     软引用可以和一个引用队列(ReferenceQueue )联合使用,如果软引用所引用的对 象被垃圾回收器回收,Java 虚拟机就会把这个软引用加入到与之关联的引用队列中。       3.弱引用(WeakReference )   弱引用与软引用 的区别在于:只具有弱引用的对象拥有更短暂的生命周期。在垃圾回收器线程扫描它所管辖的内存区域的过程中,一旦发现了只具有弱引用的对象,不管内存空间足够与否,都会回收它的内存。不过,由于垃圾回收器是一个优先级很低的线程,因此 不一定会很快发现那些只具有弱引用的对象。     弱引用可以和一个引用队列(ReferenceQueue )联合使用,如果弱引用所引用的对 象被垃圾回收,Java 虚拟机就会把这个弱引用加入到与之关联的引用队列中。       4.虚引用(PhantomReference )        “虚引用”顾名思义,就是形同虚设,如果一个对象仅持有虚引用,那么它就和没有任何引用一样,在任何时候都可能被垃圾回收器回收。 SoftReference类、WeakReference类和 PhantomReference 类, 它们分别代表软引用、弱引用和虚引用   使用WeakHashMap 能够节约存储空间,可用来缓存那些非必须存在的数据。 WeakHashMap<Key,Value> whm = new WeakHashMap<Key,Value>(); Key对象持有弱引用  


阅读全文(5938) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.031 second(s), page refreshed 144774132 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号