我用变量x
调用一个方法,我做了一些检查,如果某些条件为真,我必须用不同的变量值执行相同方法的一部分。
什么更有效?
在这两种情况下,我都可以使它工作,但更有效的方法是什么?
对于第二种情况,我在顶部使用if
语句。我读取了我想要的值,然后使用此值执行以下if语句。
public void mymethod(x){
if (con){
x = something;
}
if (con2){
//do something
} else if(con3) {
//do something
}
}
答案 0 :(得分:4)
正如戴夫所说,你可能不应该关注这种微观优化。最好的办法是以最容易阅读和理解的方式编写代码。在我看来,最好的方法是将“做某事”部分移动到一个单独的函数中,并将其所需的所有参数传递给它。以便完成其工作。
如果你真的想谈谈效率谈话,请注意现代系统往往严重依赖缓存,因此过去常用的许多性能方法实际上并不构成改进。相反,它们会使事情恶化。
答案 1 :(得分:1)
修改 x 的值并继续执行方法更有效。原因很简单。调用函数时,必须保存调用者状态(进入堆栈),然后读取被调用方法的局部变量,从而执行被调用的方法。因此,已经在被调用的方法 myMethod 中,访问变量 x 以修改其值然后继续
会“更便宜”