理解Java中的布尔值

时间:2015-10-04 09:40:22

标签: java boolean

我已经开始学习java了。我在java中学习Boolean。 Boolean有两种类型,true& false。在C中没有这样的东西。我们有01。所以,我想知道truefalse是如何工作的?它是如何存储在内存中的?它需要1位或更多空间吗?是某种类型的字符串?例如,

class Test {
public static void main(String[] args) {
    System.out.println( 5 > 6 );
}

}

我明白了:

false

那么,false的大小是多少?它看起来像是java中的字符串。

2 个答案:

答案 0 :(得分:2)

调用System.out.println()时为什么看到true和false的答案是因为println方法被重载了。其中一个方法采用boolean

的参数
public void println(boolean x) {
    synchronized (this) {
        print(x);
        newLine();
    }
}

并且它调用了一个print()方法(也是重载的),定义为。

public void print(boolean b) {
    write(b ? "true" : "false");
}

这意味着当您使用布尔值调用println时,jvm将调用显示的方法并将打印“true”或“false”

如果您正确设置了IDE,可以浏览java库的源代码,以便查看我上面发布的方法。

至于其他人发布的尺寸,答案取决于机器,如下所示What is the size of a boolean variable in Java?

答案 1 :(得分:1)

  

Boolean有两种类型,true&假的。

没有。 Boolean 一种类型,它有两个,true和false。

  

真假如何工作?它是如何存储在内存中的?是否需要1位或更多空间?

它没有定义,但JVM规范中的措辞主要支持存储为0或1值字节。

  

是某种类型的字符串吗?

没有

  

那么,假的大小是多少?

它没有被定义,你无法发现它。

  

它看起来像是java中的字符串。

不是你到目前为止提供的证据。