1樓:顏生醉夢
記憶體溢位 out of memory,是指程式在申請記憶體時,沒有足夠的記憶體空間供其使用,出現out of memory;比如申請了乙個integer,但給它存了long才能存下的數,那就是記憶體溢位。
記憶體洩露 memory leak,是指程式在申請記憶體後,無法釋放已申請的記憶體空間,一次記憶體洩露危害可以忽略,但記憶體洩露堆積後果很嚴重,無論多少記憶體,遲早會被佔光。
memory leak會最終會導致out of memory!
產生的原因:
1.記憶體中載入的資料量過於龐大,如一次從資料庫取出過多資料;
2.集合類中有對物件的引用,使用完後未清空,使得jvm不能**;
3.**中存在死迴圈或迴圈產生過多重複的物件實體;
4.使用的第三方軟體中的bug;
5.啟動引數記憶體值設定的過小
解決方案:
1)處理一些io流的資料傳輸時,盡量結束時候把io流關掉
3)還可以通過降低**畫素的方法,從而降低佔用的記憶體
4)資源的**:bitmap.recycle()bitmap=null;
5)盡量使用全域性的變數,少new新的物件
記憶體洩漏本身不會產生什麼危害,作為一般的使用者,根本感覺不到記憶體洩漏的存在。真正有危害的是記憶體洩漏的堆積,這會最終消耗盡系統所有的記憶體。從這個角度來說,一次性記憶體洩漏並沒有什麼危害,因為它不會堆積,而隱式記憶體洩漏危害性則非常大。
導致程式crash;
j**a面試題:如何解決記憶體溢位
2樓:極天異雲
呵呵,同意二樓的。
不過大多數的情況下,
改進演算法並不能改善記憶體。
這個其實也可以歸類到優化程式。
3樓:湘潭劉斌
優化關閉不需要的連線物件
比如以個資料庫連線當連線後接要馬上關閉
演算法最佳
節約運算空間
4樓:匿名使用者
及時銷毀不用的物件和變數,
定時執行強制垃圾**
android怎麼防止記憶體溢位,如何定位和解決Android的記憶體溢位問題
主要要遵循以下幾點 不要為context長期儲存引用 要引用context就要使得引用物件和它本身的生命週期保持一致 在你不控制物件的生命週期的情況下避免在你的activity中使用static變數。盡量使用weakreference去代替乙個static。垃圾 器並不保證能準確 記憶體,這樣在使用...
js 物件的屬性名是變數怎麼處理
var obj var key testkey console.log obj key 使用方括號訪問 目標 js的屬性名可以使用變數 舉例 js物件object,當賦給該物件屬性的時候可以採用以下方式 如下 var object object.prop1 value1 object.prop2 v...
該怎麼換記憶體和顯示卡,該怎麼換記憶體和顯示卡
同價位還可以考慮6200a 但個人感覺效能不如前者塞揚 這個就比較囧了 用gpu z看下吧 要是賽揚d2.66以上的就湊合用 如果不是 仍了吧 把硬碟光區顯示器留下其餘的換新件吧。1.如果是agp8x介面就不要公升級了。換主機板吧。現在哪還有agp8x的顯示卡啊。或者你去二手市場看看有沒有g6600...