首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Effective Java 学习札记第5条 - 消除过期的对象引用

2012-12-21 
Effective Java 学习笔记第5条 --- 消除过期的对象引用???? 垃圾回收器不会对“过期引用”(永远不会在被解除

Effective Java 学习笔记第5条 --- 消除过期的对象引用

???? 垃圾回收器不会对“过期引用”(永远不会在被解除的引用)的对象进行回收。如:数组中的元素先增加再减少这种情况,下标大于size()的那一部分就是过期引用的对象。
解决方法:

?

public Object pop(){   if(size == 0){       throw new EmptyStackException();   }    Object result = elements[--size];     //自减后把原来的引用置为null     elements[size] = null;     return result;} 
?

?

优点:1、避免内存泄漏而造成的系统崩溃(内存泄漏也常见于缓存,由于缓存没有及时清除无用的条目而出现,可以使用weakHashMap来避免这种情况,参考:利用WeakHashMap避免因缓存条目过期而造成的内存泄漏问题);
????????? 2、程序能在第一时间抛出空指针异常;

?

热点排行