返回布尔变量或返回条件都相同?

Aka*_*van 3 java

我已经给出了不在return语句中使用变量的注释,而是直接在返回statemnet中使用条件下面的代码中第3行和第4行之间是否有任何区别.

String str = "Hello Sir";
boolean flag = str.contains("Hello");
return(flag);
// instead ask to use below
return(str.contains("Hello"));
Run Code Online (Sandbox Code Playgroud)

我更喜欢使用变量,因为在复杂的计算中,这些有助于调试

Gho*_*ica 7

这里真的没什么区别.该变量存在于堆栈中,直接返回的值也是如此.

因此,从理论上讲,它们之间可能存在微小的性能差异.

但请放心:可读性在这里更为重要,因此我和你在一起:你可以在帮助读者时使用这样一个额外的变量.但是当你遵循干净的代码原则时,另一种选择是拥有一个计算该条件并返回结果的方法.

请注意:"常见"做法是避免其他变量,因此许多工具(如PMD甚至IDE)都建议您直接返回(有关此方面的讨论,请参见此处).

最后,回归表演.如果你的方法经常被调用,JIT无论如何都会内联/编译它,并对其进行优化.如果没有经常调用该方法,我们会在多大程度上关注纳秒的执行时间......