java 编译器或运行时(或任何其他语言编译器)是否足够聪明,可以实现分支 3 永远不会发生并对其进行优化?我已经在许多初级开发人员那里看到过这种“防御性编程”,并且想知道这种负担是否留在字节码中。
import java.util.Random;
class Example
{
public static void main(String[] args) {
int x = new Random().nextInt() % 10;
if ( x < 5 )
{
System.out.println("Case 1");
}
else
if ( x >= 5 )
{
System.out.println("Case 2");
}
else
{
System.out.println("Case 3");
}
}
}
甚至这个更直白的案例
boolean bool = new Random().nextBoolean();
if ( bool )
{
System.out.println("Case 1");
}
else
if ( bool )
{
System.out.println("Case 2");
}