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

java强大之处可以帮助我们管理内存,并不是意味着,程序猿可以放弃内存的管理,同样需要我们手动管理内存。不然的话,出现内存泄漏,十分影响性能。
什么事内存泄漏呢?简单点说,就是一个失去引用的对象,没有及时回收其内存,以致该对象永远不会回收,也许你觉得出现这样的错误,无关紧要,可是你要想到,你在此处出现了这样的失误,可能在其他地方也会忽略,需要及时的清理过期引用。
解决的方式,一种当然是及时释放内存。比如从栈中pop一个对象,就立即将该对象的内存清除,再返回栈顶对象。另一种方式是使该对象结束于生命周期。此种方式在android中很常见,比如当前activity中的context对象。
造成内存泄漏,还来源于缓存,对象存放于缓存中,容易遗忘,可能长时间不使用,仍存在缓存中。可以启动一条后台线程来完成清除缓存,也可以在添加新条目的时候清理旧的缓存。
另外内存泄漏常见来源是监听器和其他回调。某个api注册了,没有显示的取消注册,久而久之,就会积聚。解决方式是使用弱引用,当内存无论充足与否时候,会回收内存。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值