gpt4 book ai didi

Java 预处理器

转载 作者:IT老高 更新时间:2023-10-28 20:36:59 30 4
gpt4 key购买 nike

如果我有一个 boolean 字段,例如:

private static final boolean DEBUG = false;

在我的代码中,我有如下语句:

if(DEBUG) System.err.println("err1");

Java 预处理器是否只是摆脱了 if 语句和无法访问的代码?

最佳答案

大多数编译器都会删除该语句。例如:

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! :)

关于Java 预处理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1344270/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com