Android:內(nèi)存溢出和內(nèi)存泄漏的區(qū)別、產(chǎn)生原因以及解決方案

一:區(qū)別:

? ? ? ? ? ? ?1)內(nèi)存溢出 out of memory:是指程序在申請(qǐng)內(nèi)存時(shí),沒(méi)有足夠的內(nèi)存空間供其使用,出現(xiàn)out of memory;比如申請(qǐng)了一個(gè)integer,但給它存了long才能存下的數(shù),那就是內(nèi)存溢出。

? ? ? ? ? ? ? ? ?2)內(nèi)存泄露 memory leak:是指程序在申請(qǐng)內(nèi)存后,無(wú)法釋放已申請(qǐng)的內(nèi)存空間,一次內(nèi)存泄露危害可以忽略,但內(nèi)存泄露堆積后果很?chē)?yán)重,無(wú)論多少內(nèi)存,遲早會(huì)被占光

? ? ? ? ? ? ? ? ? ? 內(nèi)存泄漏本身不會(huì)產(chǎn)生什么危害,作為一般的用戶(hù),根本感覺(jué)不到內(nèi)存泄漏的存在。真正有危害的是內(nèi)存泄漏的堆積,這會(huì)最終消耗盡系統(tǒng)所有的內(nèi)存。從這個(gè)角度來(lái)說(shuō),一次性?xún)?nèi)存泄漏并沒(méi)有什么危害,因?yàn)樗粫?huì)堆積,而隱式內(nèi)存泄漏危害性則非常大。導(dǎo)致程序crash;

二:產(chǎn)生的原因:

定義中已經(jīng)給出,下面說(shuō)一下內(nèi)存溢出產(chǎn)生的地方:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1.內(nèi)存中加載的數(shù)據(jù)量過(guò)于龐大,如一次從數(shù)據(jù)庫(kù)取出過(guò)多數(shù)據(jù);

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2.集合類(lèi)中有對(duì)對(duì)象的引用,使用完后未清空,使得JVM不能回收;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?3.代碼中存在死循環(huán)或循環(huán)產(chǎn)生過(guò)多重復(fù)的對(duì)象實(shí)體;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 4.使用的第三方軟件中的BUG;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 5.啟動(dòng)參數(shù)內(nèi)存值設(shè)定的過(guò)小

三:解決方案:

不管那種錯(cuò)誤都會(huì)涉及到內(nèi)存定位優(yōu)化我們可以從一下幾部來(lái)避免和解決內(nèi)存泄漏和溢出的問(wèn)題:

1)處理一些IO流的數(shù)據(jù)傳輸時(shí),盡量結(jié)束時(shí)候把IO流關(guān)掉

2)處理下載照片時(shí)候,使用BitmapFactory.options。設(shè)置insameplesize()方法壓縮圖片減少資源的占用;圖片的壓縮問(wèn)題下面會(huì)寫(xiě)一個(gè)專(zhuān)門(mén)專(zhuān)題來(lái)講;

3)還可以通過(guò)降低照片像素的方法,從而降低占用的內(nèi)存

4)資源的回收:Bitmap.recycle()bitmap=null;

5)盡量使用全局的變量,少new新的對(duì)象

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容