您的位置:首页 > 移动开发 > Android开发

java(android)编程中存在性能影响的主要方面

2012-11-14 12:33 176 查看
1.循环中;

1)在重要的循环里,消除循环终止判断时的方法调用。

  例如:将

  for(int i=0; i<collection.size();i++){ ... }

  替换为…

尽量减少对变量的重复计算

  for(int i=0; n=collection.size();i<n;i++){...}

2) 通常把大循环放在里面,把小循环放在外面

例如:将

for(int i=0;i<10;i++) {

for(int j=0; j<1000000;j++) {}

}

3) 通常,把与循环index不相关的移到循环的外面

for(int i=0; terminal=x.length;i<terminal;i++){

x =x/scaleA *scaleB;

}

应该该成:Double scale = scaleB*scaleA;for(int i=0;terminal=x.length;i<terminal;i++){x = x/scale ;}

4)循环内不要创建对象的应用

for(inti=1;i<=domainCount;i++){ .

AuditResult auditResult = new AuditResult();

}

这种做法会在内存中保存N份这个对象的引用//会浪费大量的内存空间,改为

AuditResult auditResult;

for(int i=1;i<=domainCount;i++){

auditResult=new AuditResult();

..

}

2.字符串处理;

1)字符串拼接使用StringBuilder替代String的“+”;

2)在不需要考虑现成安全的情况下使用StringBuilder替代StringBuffer;

3.变量和常量的处理;

1)在重要的循环里使用基本数据类型;

2)对所有的常量代数表达式使用static final修饰符;

3)不要重复初始化变量;

4)如果不考虑某个类的可扩展尽量将该类类增加final修饰符;

5)尽量使用局部变量,类变量访问速度比局部变量慢;

4.同步机制;

1)在使用同步机制时,应尽量使用方法同步代替代码块同步;

2)ConcurrentHashMap去替代Vector,性能更高;

5.异常处理;

1)不要在循环中使用try catch;

2)因为try catch的执行开销是很大的,所以不要在不需要try catch的地方,也加上,让catch的代码块额外增加;

6.算术运算;

1)乘除法如果能用移位表示尽量用移位运算;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: