【发布时间】:2023-03-18 22:49:01
【问题描述】:
我同时使用objective-c 和java。在前者中,我可以访问预处理指令,因此我可以为调试定义打印语句,在未定义时不使用循环。
由于 Java 没有这种能力,我很好奇编译器如何处理这样的事情:
public class MyClass {
private static final boolean DEBUG = false;
public void printMessage(String message) {
if (DEBUG) {
//sysout
}
}
}
每次调用 printMessage 会降低性能,还是编译器会识别 DEBUG 始终为假并补偿每次调用? 有没有更好的方法来处理这个我不知道的?
【问题讨论】: