記憶體洩漏5

2021-10-16 22:32:06 字數 530 閱讀 6237

看一段**

執行結果將 列印日誌 i: 10

new runnable是乙個內部類, 持用外部類testactivity的引用i,由於內部類不會自行銷毀,

並且由於 i 被內部類引用了,導致testactivity不能被**

那麼 testactivity 怎麼樣才能被**,  只有內部類被銷毀了,才能做到

解決方法:

第一種方法: hanlder呼叫removecallbacksandmessages(null)

第二種方法: 使用靜態內部類,     因為 靜態內部類不能持有外部類的引用。 持有將報錯。

然後在靜態內部類中使用弱引用, 可防止記憶體洩漏。

執行結果如下:

記憶體洩漏和記憶體溢位 記憶體洩漏和記憶體溢位

記憶體洩漏 是指申請的記憶體空間使用完畢之後未 一次記憶體洩露危害可以忽略,但若一直洩漏,無論有多少記憶體,遲早都會被占用光,最終導致程式crash。因此,開發中我們要盡量避免記憶體洩漏的出現 記憶體溢位 是指程式在申請記憶體時,沒有足夠的記憶體空間供其使用。通俗理解就是記憶體不夠用了,通常在執行大...

wxWidgets delete記憶體洩漏

定義乙個結構typedef tag struct customnode struct,再定義乙個wxarrayptrvoid m nodearray 在程式的初始化過程裡 for wxint32 i 0 i 5 i node struct ptemp new node struct ptemp a ...

PHP記憶體洩漏

如果php物件存在遞迴引用,就會出現記憶體洩漏。這個bug在php裡已經存在很久很久了,先讓我們來重現這個bug,如下 class foo class bar for i 0 i 100 i 執行以上 你會發現,記憶體使用量本應該不變才對,可實際上卻是不斷增加,unset沒有完全生效。現在的開發很多...