![](/img/trans.png)
[英]Java IF-ELSE IF-ELSE skipping the if and else if check and prints out else statement automatically
[英]calling method in if-else OR out of if-else
我有一个关于在if-else或if-else
语句之外调用方法的问题。
调用方法 if-else
:
int a = 1;
if (SOME_CONDITION) {
/* Never chagned variable a */
foo(a);
} else {
/* Never chagned variable a */
foo(a);
}
从 if-else
调用方法:
int a = 1;
if (SOME_CONDITION) {
/* Never chagned variable a */
} else {
/* Never chagned variable a */
}
foo(a);
哪一个性能更好?
性能没有差异,但代码重复没有差异。 因此,第二种方法更好。
但是,让我为您介绍另一种方式:
if (SOME_CONDITION) {
/* Never chagned variable a */
} else {
/* Never chagned variable a */
}
int a = 1;
foo(a);
甚至更好:
foo(1);
如果两者之间没有任何步骤,则将变量与调用它的方法保持在一起。 另外,请勿定义新变量,因为该值可能会立即传递。
哪一个性能更好?
无论哪种方式,该方法仅被调用一次,因此不会有任何区别。
但是,总的来说,着重于编写清晰,可理解,可维护的代码,并在遇到特定的性能问题时担心性能问题。
在这种情况下,您的第二个选项更清晰,更易于维护(在两个地方都拥有呼叫可以更改其中一个而忘记更改另一个)。
在性能方面,两者是相同的。
说到内存,第二种方法更好。 此方法称为代码移动,是一种代码优化技术。 这是因为如果函数是由编译器内联的,则整个函数体将被粘贴两次,这将导致更多的代码空间。 希望有帮助:)
两者具有相同的性能。
没有确定的差异,但是选项2是更好的代码,因为foo()不取决于条件
程序本身表明,一行优于两行。 但是在这种情况下
if (SOME_CONDITION) {
/* Never chagned variable a */
foo(a);}
如果条件仅执行一次,它将不会对您的性能产生重大影响
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.