effevtive java--消除过期对象的引用

来源:互联网 发布:杀牛电击锤价格淘宝 编辑:程序博客网 时间:2024/06/01 07:48

最近在看effective java时候提到,有三个内存泄露的常见情况需要警惕

1、只要是类自己管理内存,程序员就应该管理内存泄露问题   比如栈和Arraylist在容量不够的时候都有自动扩容的情况,栈先增长再收缩,收缩后外面将有些对象时被栈内部过期引用(永远不会再解除的引用)  解决办法是活动部分之外的那些数组元素手动清空(就是数组下标>=size的元素引用为null)

        2、内存泄露另一个常见来源是缓存  解决办法是可以用WeakHashMap做缓存

        3、内存泄露第三个常见来源是监听器和其他回调   

具体的可以参考这篇文章 http://www.cnblogs.com/liuroy/p/6442888.html

       还有WeakHashMap 和 弱引用 可以参考这里 http://www.importnew.com/23182.html

原创粉丝点击