1, 最常见的Java 中的内存溢出就是 一下静态的容器 HashMap, List 之类的容器了。 由于是静态的的容器它们的生命周期就是创建之后就跟jvm 相同。 因此它们里面的object 们也会被他们hold 住, 即使别的地方都已经用完了, 如果没有显示的从他们这移除, 那些object 也会永远存在。 如果是这种容器的作用是作为cache 的话 还是用 memcache 来完成吧。 绝大多数的cache 容器是使用 SoftReference 来hold 住 target object的。 SoftReference refer 的对象如果在别的地方没有被引用了, 在GC 做 full collection 的时候会回收这些对象的。
2, 是一样事件处理的地方 我们会add Some listener 。 通常我们都是只记得加 不记得 un register。 这样在加的地方 对象用完了 但是 被监听的对象 还在的话。 listen 的对象也不会被 释放。 这个情况在dotNet 下面, 特别当初做 win form的时候很郁闷啊, 一个winform 程序在那个时候 占个 1,200m 内存。 在 05,06 512m内存都是大的了。 最后发现很多控件没有释放掉就是这种原因, 搞得还骂微软, 到了 java 世界也有这个问题。 好像现在dotNet 都是在处理这种delegate 的时候用到 softreference 了。 到底是用到 soft reference 还是 weak reference 还得向 一哥们求证下。 ( 特此记录下 )
分享到:
相关推荐
完美解决java读取excel内存溢出问题,希望可以帮到大家
JAVA内存溢出问题总结
Java中OutOfMemoryError(内存溢出)的三种情况及解决办法
java解决大批量数据导出Excel产生内存溢出的方案
JAVA内存溢出详解.docJAVA内存溢出详解.docJAVA内存溢出详解.docJAVA内存溢出详解.docJAVA内存溢出详解.docJAVA内存溢出详解.docJAVA内存溢出详解.docJAVA内存溢出详解.docJAVA内存溢出详解.docJAVA内存溢出详解.doc
java内存泄露、溢出检查方法和工具。 步骤: 1,使用linux命令生存堆栈文件 2,用MemoryAnalyzer.exe工具打开 3,根据工具生成的饼状图可以清晰的找出内存泄漏源
Java内存溢出解决办法 加大Tomcat使用Jvm内存(转载) 注重版权 Caused by: java lang OutOfMemoryError: Java heap space 错误原因及解决方法
kettle内存溢出(Java heap space)以及解决方法
【Java面试题】Java内存溢出
java IBM websphere 内存溢出 javacore deapdump CPU内存分析工具
软件开发 数据库 内存泄露 内存溢出
tomcat内存溢出处理方法适用于java,开发工具myeclipse或eclipse
Java内存溢出解决办法,很普遍的问题,希望能有所帮助。
关于Java中内存溢出的解决办法 关于Java中内存溢出的解决办法
主要介绍了Java编程常见内存溢出异常与代码示例,具有一定参考价值,需要的朋友可以了解下。
websphere 内存溢出 javacore分析工具jca456 分析javacore的好工具 分析javacore的好工具
java 使用 poi 解析导入大数据量(几万数据量+)时,报出OOM。这是使用POI 第二种处理方法,解决大数据量导入内存溢出问题,并提升效率
解决Java程序内存溢出的几种办法和处理问题的一些经验
使用BitmapFactory加载图片时,如果图片过大可能引起OutOfmemory溢出的问题。解决办法。
Java内存溢出的详细解决方案 Java内存溢出的详细解决方案