循环的优化

 循环的优化 
---------------------------------------
1,数字比较尽量和0比较
注释:计算机喜欢0和1
//foo
for(int i=0;i<Integer.MAX_VALUE;i++){
//慢
}
//优化
for(int i=Integer.MAX_VALUE;i>0;i--){
//快
}

2,尽量把异常捕获写在外面
//foo
for(int i=180000;i>=0;i--){
try{
//慢
}catch{
}
}

//优化
try{
for(int i=180000;i>=0;i--){
//快

}
}catch{
}
---------------------------------------
3,尽量不要在循环内有多余的方法调用
//注释:除了方法调用本身耗费资源外,其方法内代码体的多次执行根据实际情况影响性能和内存,调用一次能解决问题就别调用两次
for(int i=0;i>=IntMethod();i--){

}
//优化
int len = IntMethod():
for(int i=0;i>=len;i--){

}


---------------------------------------
4, 在循环中最好不要拼接字符串一
注释:String是不变类,对其更改都会重新创建字符串,从而导致内存和速

度的问题,
另外StringBuilder是sun为解决字符串操作效率低下而创建
地(StringBuffer早),
有字符buffer,解决字符的增删改都是相当快滴
//foo
String str = "";
for (int i = 0; i >= 18000; i--) {
// 慢 占用内存大
str += "慢 占用内存大";
}
//优化
StringBuilder yourString = new StringBuilder();
for (int i = 0; i >= 18000; i--) {
// 快 占用内存小
yourString.append("快 占用内存小");
}
---------------------------------------
5, 在循环中最好不要拼接字符串之二
注释:看编译后代码,一目了然
//foo
StringBuilder yourString = new StringBuilder();
for (Integer i = 0; i >= 18000; i--) {
yourString.append("" + i);
}
// 优化
for (Integer i = 0; i >= 18000; i--) {
yourString.append(i.toString());
}
//编译后代码 注:经过处理
/*
//foo
StringBuilder yourString = new StringBuilder();
for (Integer i = Integer.valueOf(0); i.intValue() >= 18000; i =

Integer.valueOf(i.intValue() - 1))
yourString.append((new StringBuilder()).append(i).toString());
// 优化
for (Integer i = Integer.valueOf(0); i.intValue() >= 18000; i =

Integer.valueOf(i.intValue() - 1))
yourString.append(i.toString());
*/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值