Effective Java (6) 消除过期的对象引用
来源:互联网 发布:淘宝联盟app推广 编辑:程序博客网 时间:2024/05/21 15:25
不要总以为Java会百分之百的回收垃圾对象,所以可以丝毫不顾忌垃圾回收。Java在对象被引用的情况下,是不会将对象回收的。
最常见的例子,就是当一个数组对象中的元素,如果数组没有被清除,那么数组中的元素就不会被回收。极端情况下,这些元素会一直增长,造成内存泄露直到内存溢出。所以在这样的情况下,显示的将元素设置为null是必要的。
另一个内存泄露的常见来源是缓存。程序将对象放入缓存,然后就遗忘了其存在。可以使用WeakHashMap来解决这样的问题,也可以对缓存对象设置生命周期,在过期以后,回收对象。另外,设置缓存池大小也是一个解决的方法,如Ibatis的LRU缓存。
第三个内存泄露的常见来源是监听器及回调。客户端注册了回调,却没有显示取消,则这些监听会积聚,发生内存溢出。
防止内存泄露最佳的时间,往往是编写代码时。因为在发生内存泄露之后,检查往往只有费时费力通过代码检查或者Heap剖析工具差错。现对而言,防患于未然才是最佳的选择。
0 0
- Effective Java -- 消除过期的对象引用
- Effective Java 第6条:消除过期的对象引用
- Effective Java (6) - 消除过期的对象引用
- Effective Java 第6条 消除过期的对象引用
- Effective Java (6) 消除过期的对象引用
- effective java(6) 之消除过期的对象引用
- Effective Java第六条:消除过期的对象引用
- 《Effective Java》内存泄漏:消除过期的对象引用
- Effective Java item6 消除过期对象的引用
- Effective Java 2.6——消除过期的对象引用
- Effective java第六条:消除过期的对象引用
- 《Effective java》读书记录-第6条-消除过期的对象引用
- Effective Java(避免创建不必要的对象、消除过期的引用对象)
- JAVA消除过期的对象引用
- effevtive java--消除过期对象的引用
- Effective Java学习笔记四(消除过期的对象引用)
- Effective Java之消除过期的引用(六)
- 6、消除过期的对象引用
- poj 1584 计算几何 (点到线段距离+判断点是否在多边形内+判断多边形是否为凸包)
- Lua的debug hook功能探究与改造--上篇 . http://blog.csdn.net/soloist/article/details/1458743
- 内存泄漏原因
- cocos2d-x之浅析Hello World
- ASP.NET MVC 描述类型(二)
- Effective Java (6) 消除过期的对象引用
- 最小生成树 POJ3723 Conscription
- LAMP安装问题
- 初探Linux网络协议栈
- HDU 1203 I NEED A OFFER!(01背包基础题)
- 腾讯后台面试
- POJ3045 Cow Acrobats 二分搜索
- spring mvc 基础配置
- 数字图像处理