节省内存小习惯

原文:http://blog.csdn.net/a396901990/article/details/38707007

开发上的小习惯,聚沙成塔

1.对常量使用static final修饰符

 

2.静态方法代替虚拟方法

 

如果不需要访问某对象的字段,将方法设置为静态,调用会加速15%到20%。这也是一种好的做法,因为你可以从方法声明中看出调用该方法不需要更新此对象的状态。

3.减少不必要的全局变量

尽量避免static成员变量引用资源耗费过多的实例,比如Context

因为Context的引用超过它本身的生命周期,会导致Context泄漏。所以尽量使用 Application这种Context类型。 你可以通过调用Context.getApplicationContext()或 Activity.getApplication()轻松得到Application对象。

 

4.避免创建不必要的对象

 

最常见的例子就是当你要频繁操作一个字符串时,使用StringBuffer代替String。

 

对于所有所有基本类型的组合:int数组比Integer数组好,这也概括了一个基本事实,两个平行的int数组比 (int,int)对象数组性能要好很多。

 

总体来说,就是避免创建短命的临时对象。减少对象的创建就能减少垃圾收集,进而减少对用户体验的影响。

 

5.避免内部Getters/Setters

在Android中,虚方法调用的代价比直接字段访问高昂许多。通常根据面向对象语言的实践,在公共接口中使用Getters和Setters是有道理的,但在一个字段经常被访问的类中宜采用直接访问。

 

6.避免使用浮点数

 

通常的经验是,在Android设备中,浮点数会比整型慢两倍。

 

 

7.使用实体类比接口好

 

假设你有一个HashMap对象,你可以将它声明为HashMap或者Map:

8.避免使用枚举

枚举变量非常方便,但不幸的是它会牺牲执行的速度和并大幅增加文件体积。

使用枚举变量可以让你的API更出色,并能提供编译时的检查。所以在通常的时候你毫无疑问应该为公共API选择枚举变量。但是当性能方面有所限制的时候,你就应该避免这种做法了。

 

9.for循环

int count = this.mCount; / int count = this.getCount(); 

for(int i =0; i < count; i++)  {} 

 

posted @ 2015-01-27 21:32  幻次元  阅读(189)  评论(0编辑  收藏  举报