您的位置:首页 > Web前端

《Effective java》读书笔记-(三)

2016-05-03 21:28 309 查看
java强大之处可以帮助我们管理内存,并不是意味着,程序猿可以放弃内存的管理,同样需要我们手动管理内存。不然的话,出现内存泄漏,十分影响性能。

什么事内存泄漏呢?简单点说,就是一个失去引用的对象,没有及时回收其内存,以致该对象永远不会回收,也许你觉得出现这样的错误,无关紧要,可是你要想到,你在此处出现了这样的失误,可能在其他地方也会忽略,需要及时的清理过期引用。

解决的方式,一种当然是及时释放内存。比如从栈中pop一个对象,就立即将该对象的内存清除,再返回栈顶对象。另一种方式是使该对象结束于生命周期。此种方式在android中很常见,比如当前activity中的context对象。

造成内存泄漏,还来源于缓存,对象存放于缓存中,容易遗忘,可能长时间不使用,仍存在缓存中。可以启动一条后台线程来完成清除缓存,也可以在添加新条目的时候清理旧的缓存。

另外内存泄漏常见来源是监听器和其他回调。某个api注册了,没有显示的取消注册,久而久之,就会积聚。解决方式是使用弱引用,当内存无论充足与否时候,会回收内存。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: