天天看點

Android基礎:記憶體溢出和記憶體洩漏的差別

  • 記憶體溢出: out of memory,記憶體溢出就是你要求配置設定的記憶體超出了系統能給你的,系統不能滿足需求,于是産生out of memory;
    • 比如: 變量a記憶體為4個位元組,變量b為8個位元組,将8個位元組的變量b賦給4個位元組的變量a時,記憶體裝不下,因為它隻能裝4個位元組,這時叫記憶體溢出。
  • 記憶體洩露: memory leak,是指程式在申請記憶體後,無法釋放已申請的記憶體空間,一次記憶體洩露危害可以忽略,但記憶體洩露堆積後果很嚴重,無論多少記憶體,遲早會被占光。
    • Java記憶體洩漏是指在堆上配置設定的記憶體沒有被釋放,進而失去對其控制。這樣會造成程式能使用的記憶體越來越少,導緻系統運作速度減慢,嚴重情況會使程式挂掉。
  • 記憶體溢出和記憶體洩漏的聯系: 記憶體洩露會最終會導緻記憶體溢出!