码迷,mamicode.com
首页 > 移动开发 > 详细

android 垃圾回收机制

时间:2017-02-20 14:00:50      阅读:242      评论:0      收藏:0      [点我收藏+]

标签:退出   无法   对象回收   数据类型   进程   对象引用   字符   方便   调用   

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)分散创建和删除对象的时间。一次性创建或者删除太多的对象,会导致内存突然变得紧张或者一次性释放太对,不利用内存的合理使用。

android 垃圾回收机制

标签:退出   无法   对象回收   数据类型   进程   对象引用   字符   方便   调用   

原文地址:http://www.cnblogs.com/andy-songwei/p/6418920.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!