内存泄漏与内存溢出
內存泄漏
Memory Leak
是指無用對象,即不再使用的對象
持續占有內存,或者無用對象的內存得不到及時釋放
從而,造成的內存空間的浪費,稱為內存泄露
內存泄露有時不嚴重且不易察覺,這樣開發者就不知道存在內存泄露
但有時也會很嚴重,就會提示Out of memory
程序在申請內存后,無法釋放已申請的內存空間
一次內存泄漏似乎不會有大的影響,但內存泄漏堆積后的后果,就是內存溢出
內存溢出
Memory Overflow
一般是由程序編寫者,對內存使用不當
如對該釋放的內存資源沒有釋放,導致其一直不能被再次使用,而使內存被耗盡的現象,稱為內存溢出
程序申請內存時,沒有足夠的內存供申請者使用
內存不夠用,此時就會報錯OOM,即所謂的內存溢出
根本的解決辦法是對代碼進行優化
兩者關系
內存泄漏的堆積,最終會導致內存溢出
總結