虽然我知道根据定义,布尔值仅包含两种状态,真或假。我想知道布尔值在使用这些状态之一初始化之前有什么值。
问问题
30704 次
8 回答
16
如果是局部变量,则在初始化之前引用它是编译器错误。如果是字段,则初始化为 false。
于 2009-06-04T18:04:59.833 回答
9
public class NewMain {
boolean foo;
Boolean bar;
public static void main(String[] args) {
NewMain obj = new NewMain();
obj.whatBoolean();
}
public void whatBoolean() {
System.out.println(foo);
System.out.println(bar);
}
}
输出
false
null
我知道这是一个更哲学的问题,但是由于自动装箱,您可以将 Java 用作几乎真正的 OO 语言(我讨厌原始类型......现在只有它也可以反过来工作)。但是,它确实会在您使用对象时改变行为(为了更好的 IMO)。
于 2009-06-04T18:33:32.890 回答
2
于 2009-06-04T18:05:41.080 回答
1
在 JAVA 中,布尔类型默认为 False。
于 2009-06-04T18:05:13.263 回答
1
仅供参考,boolean 默认为 false,原始数字默认为 0、0L、0f 或 0d(视情况而定),char 默认为 '\0',对象引用(例如 Boolean)默认为 null。
这也适用于数组的内容。(一个常见的问题是对象数组最初充满了空值)
于 2009-06-05T19:55:32.587 回答
0
这是假的
于 2009-06-04T18:05:42.780 回答
0
如果你有类似的东西
boolean isTrue;
System.out.println(isTrue);
你应该得到一个编译时错误,因为布尔值没有被初始化。默认情况下,当您尝试初始化它时,它将设置为 false;
于 2009-06-04T18:06:45.803 回答