Vin*_*igh 5 java switch-statement micro-optimization
考虑以下代码:
int num = 0;
switch(num) {
case 1:
boolean bool = false;
break;
case 2:
String one;
String two;
String three;
//..simulating lots of vars
break;
default:
bool = true;
System.out.println(bool);
break;
}
Run Code Online (Sandbox Code Playgroud)
由于我们被允许引用在另一个案例中声明的变量,这意味着即使case 1未被选中,boolean bool仍然被声明.
既然default是最后一个选项,并且java从左到右(从上到下)工作,我假设case 2也会声明(和任何其他情况)中的变量.
这使我认为,在选择案例之前声明的案例中,您所拥有的代码越多,实际访问该案例所需的时间与首先声明所选案例的时间相比就越长.
切换语句是否有特定原因以这种方式工作?if-else如果有很多情况,最好不要使用而不是切换语句?(谈论处理时间,纳秒)
Java 中的 switch 语句的模式是在 C++ 中的 switch 语句的模式之后的,而 C 中的 switch 语句的模式可能是在 B 中的 switch 语句之后的模式……BCPL(当然具有相同的单块结构)……
正如一份失传已久的 Sun 错误报告所说(关于其他事情),“原因已经消失在时间的迷雾中”。