在我们的一些公司项目代码中,我经常读到这样的东西:
boolean foo = Boolean.FALSE;
除了事实上AFAIK我只需要在Java中初始化局部变量(没有像Pascal那样的随机值),而且除了我经常想要进行初始化的布尔运算之外,我在这里想念什么?为什么不:
boolean foo = false;
我不明白. PMD和Findbugs等代码分析工具也标志着它.但为什么?
编辑:
在没有真正了解字节码的情况下,除了它在那里我创建了一个示例类并对其进行反编译. Boolean.FALSE转到:
0: getstatic #15 // Field java/lang/Boolean.FALSE:Ljava/lang/Boolean;
3: invokevirtual #21 // Method java/lang/Boolean.booleanValue:()Z
6: istore_1
‘假’变种去了:
0: iconst_1
1: istore_1
因此,在不太了解这一点的情况下,我猜想更多的语句意味着更多的时间来执行所以它不仅错误而且从长远来看也更慢.