调用方法的方法给我最好的表现

时间:2015-02-02 14:07:03

标签: java performance

我想问的是,如果我这样做

final Cat c = getBlackCat();
polishCat(c);

或者

polishCat(getBlackCat());

那些编译成同一个东西吗?什么是最佳做法?什么是记忆明智和cpu明智更好?

1 个答案:

答案 0 :(得分:2)

在字节码级别,您必须始终明确地存储一个方法调用的结果,以便能够将其提供给下一个方法调用。您可以考虑"嵌套调用" Java中的成语只是语法上的糖。所以是的,这两段代码是等价的。

哪种风格更受欢迎是值得商榷的,并且有赞成的论点。我赞成这样的论点,即每当你在代码中明确命名一个东西时,它就会让读者有义务记住这个名字及其所指的内容。如果变量不是最终的,那么读者必须另外仔细跟踪变量的所有用法,以免在其他地方有另一个赋值,即使偶然(例如,使用=而不是==)。如果你内联调用方法,你就不会强加认知负荷。