【发布时间】:2016-04-16 01:55:46
【问题描述】:
我遇到过一些情况,其中 first 似乎改变了 Boolean 的值,而 second 没有!两者之间是否有真正的区别:
boolean x = true;
if (x != true) {}
if (!x) {}
【问题讨论】:
-
没区别,但第二个更优雅
-
除了所有答案之外,Java 编译器还会在遇到字节码时对其进行优化。两者都是单一的 IFNE。
-
对我来说,不同之处在于
if (x != true)看起来像是由没有正确理解布尔值的人编写的。