effectiveJava(5)消除过期的对象引用
生活随笔
收集整理的這篇文章主要介紹了
effectiveJava(5)消除过期的对象引用
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
過期引用:永遠也不會再被解除的引用。
內存泄漏常見來源:
一、類自己管理內存時,程序員應該警惕內存泄漏問題。一旦元素被釋放掉,則該元素中包含的任何對象引用都應該被清空。
二、緩存。一旦對象引用放到緩存中,就很容易被遺忘掉,從而使得對象不再有用之后的很長一段時間內仍然留在緩存中。實現(xiàn)緩存時,只要在緩存之外存在對某個項的鍵的引用
該項就有意義,那么就可以用WeakHashMap代表緩存;當緩存中的項過期之后,他們會被自動刪除。只有當所要的緩存項的生命周期是由該鍵的外部引用而不是由值決定時,WeakHashMap才有用處
三、監(jiān)聽器和其他回調。
?
由于內存泄漏通常不會表現(xiàn)成明顯的失敗,所以它們可以在一個系統(tǒng)中存在很多年。一般只有通過仔細檢查代碼,或者借助于Heap剖析工具才能發(fā)現(xiàn)內存泄漏的問題。因此,如果能夠在內存泄漏發(fā)生之前就知道
如何預測此類問題,并阻止發(fā)生,是最好的。
轉載于:https://www.cnblogs.com/dgq-blog/p/8984729.html
總結
以上是生活随笔為你收集整理的effectiveJava(5)消除过期的对象引用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 字扩展、位扩展、字位同时扩展
- 下一篇: java美元兑换,(Java实现) 美元