Java是布尔值'true'的默认值吗?

时间:2011-05-18 16:58:12

标签: java boolean

为什么private Boolean shouldDropTables;默认情况下会将true分配给变量而不是NULL,就像写private Integer anInteger;时一样?

我问的是因为我遇到了一些代码,其中对shouldDropTables布尔变量进行评估NULL或者不确定是否执行方法。

6 个答案:

答案 0 :(得分:87)

布尔值(带有大写的“B”)是一个布尔对象,如果没有赋值,则默认为null。 boolean(带小写的'b')是一个布尔基元,如果没有赋值,则默认为false。

Boolean objectBoolean;
boolean primitiveBoolean;

System.out.println(objectBoolean); // will print 'null'
System.out.println(primitiveBoolean); // will print 'false'

答案 1 :(得分:12)

默认情况下,布尔值为null

答案 2 :(得分:4)

默认情况下为NULL。因为它是一个布尔对象。

Object 'Boolean' =  NULL value          // By default,
Primitive type 'boolean' = false value  // By default.

答案 3 :(得分:3)

也许你没有看到一些初始化。

默认情况下为null。请参阅此示例:

$ cat B.java
class B {
        private Boolean shouldDrop;
        public static void main( String ... args ) {
                System.out.println( new B().shouldDrop );
        }
}

$ javac B.java

$ java B
null

我希望有帮助

答案 4 :(得分:3)

我只想为原始boolean变量添加一个点(对于初学者)。

当@ 99tm回答时,默认值为“false”。这对于实例或类变量是正确的。

如果您将方法局部变量(即方法的本地变量)作为基元boolean,则没有默认值且它不是Object,因此它也不能为空。

您必须在使用之前对其进行初始化,否则会出现编译错误。

答案 5 :(得分:2)

JLS 9, 4.12.5. Initial Values of Variables

  
      
  • 对于类型boolean,默认值为false。

  •   
  • 对于所有引用类型(§4.3),默认值为null。

  •   

Boolean是引用类型,因此默认值为null