java中的第三个布尔状态是什么?

sol*_*oth 26 java primitive boolean

虽然我知道根据定义,布尔值只包含两个状态,true或false.我想知道布尔值在用这些状态之一初始化之前有什么值.

Ada*_*ter 69

它默认为false.

编辑:受欢迎的需求:

除非您使用包装的布尔值,默认为null. - sudhir.j

  • 除非您使用包装的布尔值,默认为null. (11认同)
  • 通常,Java变量默认为C程序员可能称之为"假"的值 - 例如0,null,false等. (3认同)

Yis*_*hai 16

如果它是局部变量,则在初始化之前引用它是编译器错误.如果是字段,则将其初始化为false.


Tre*_*rey 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);
    }
}
Run Code Online (Sandbox Code Playgroud)

输出

false
null
Run Code Online (Sandbox Code Playgroud)

我知道这对于一个问题更具哲学性,但是由于自动装箱,你可以使用Java作为一种几乎真正的OO语言(我讨厌拥有原始类型......现在只有当它反向运作时).但是,它会在您使用对象时更改行为(为了更好的IMO).