<<effective java>>第45条:将局部变量的作用域最小化

我以前写for循环的例子:

public class Client {
    public static void main(String[] args) {
        Client client = new Client();
        for (int i = 0;i < client.count(); i++) {
            System.out.println("第"+i+"次");
        }
        
    }
    
    public int count(){
        return 10;    //可能是复杂的计算
    }
}

这样写每次循环都要调用一次count()方法,会增加开销,是不可取的。

可以采用下面做法减少开销:

public class Client {
    public static void main(String[] args) {
        Client client = new Client();
        for (int i = 0,n=client.count();i<n; i++) {
            System.out.println("第"+i+"次");
        }
        
    }
    
    public int count(){
        return 10;    //可能是复杂的计算
    }
}

从而避免在每次迭代中执行冗余计算的开销。

 QQ群:127402101,进群请修改备注。

原文地址:https://www.cnblogs.com/haifg/p/2968836.html