最近在看effective java时候提到,有三个内存泄露的常见情况需要警惕
1、只要是类自己管理内存,程序员就应该管理内存泄露问题 比如栈和Arraylist在容量不够的时候都有自动扩容的情况,栈先增长再收缩,收缩后外面将有些对象时被栈内部过期引用(永远不会再解除的引用) 解决办法是活动部分之外的那些数组元素手动清空(就是数组下标>=size的元素引用为null)
2、内存泄露另一个常见来源是缓存 解决办法是可以用WeakHashMap做缓存
3、内存泄露第三个常见来源是监听器和其他回调
具体的可以参考这篇文章 http://www.cnblogs.com/liuroy/p/6442888.html
还有WeakHashMap 和 弱引用 可以参考这里 http://www.importnew.com/23182.html