Ответ 1
Большинство компиляторов устранит утверждение. Например:
public class Test {
private static final boolean DEBUG = false;
public static void main(String... args) {
if (DEBUG) {
System.out.println("Here I am");
}
}
}
После компиляции этого класса я затем распечатаю список созданных инструкций с помощью команды javap
:
javap -c Test Compiled from "Test.java" public class Test extends java.lang.Object{ public Test(); Code: 0: aload_0 1: invokespecial #1; //Method java/lang/Object."":()V 4: return public static void main(java.lang.String[]); Code: 0: return }
Как вы можете видеть, нет System.out.println
!:)