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

为什么private Boolean shouldDropTables; 默认情况下将true赋给变量而不是NULL ,就像写private Integer anInteger;

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

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

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

没有。

默认情况下,Boolean为null

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

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

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

它默认为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 

我希望有所帮助

我只是想为一个原始布尔添加一个点(对于初学者)。

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

如果您将方法局部变量(即方法的局部变量)作为基本布尔值,则没有默认值。 您需要在使用它之前初始化它,否则它是编译错误。

JLS 9,4.12.5。 变量的初始值

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

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

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