android 垃圾回收機制


1.垃圾收集算法的核心思想

      java語言提供了自動的GC機制,系統會經常檢查內存,采用對象引用計數的方式,將引用次數為0的對象回收。這樣可以防止兩個危險:(1)防止無用對象占用內存資源 (2)防止有用對象被釋放,引起內存非法引用。

2.觸發GC(Garbage Collector)的條件

     (1)應用進程空閑的時候,GC會回收空閑進程的內存資源。

     (2)應用進程繁忙的時候,當需要的內存資源不足的時候, GC會強制執行回收優先級比較低的進程資源,如果還是不足,則再回收兩次,還是不足則會報OOM。

3.減少GC開銷的措施

   (1)盡量少顯示地調用 System.gc();

   (2)減少臨時對象的引用;臨時對象退出函數后 ,

   (3)對象使用完后,設置為指向null;這樣會方便系統查找到空對象,更快回收掉內存;

   (4)能用int等基本數據類型,就盡量不要使用Integer等引用類型,基本類型占用的資源比引用類型要小得多;

   (5)盡量少地使用static變量。static 變量是全局性的,系統在堆中為其分配內存,GC無法回收該內存;

   (6)對於需要使用變長的字符串變量,盡量使用StringBuffer而不是String。String每賦值一次,就會重新分配一次內存,String str = str1+str2+str3+str4+str5,每多一個“+”,就會多

       創建一個對象。

   (7)分散創建和刪除對象的時間。一次性創建或者刪除太多的對象,會導致內存突然變得緊張或者一次性釋放太對,不利用內存的合理使用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM