【发布时间】:2015-10-04 09:40:22
【问题描述】:
我已经开始学习java了。我正在用java学习Boolean。布尔值有两种类型,true 和 false。在 C 中没有这样的东西。我们有0 或1。所以,我想知道true 和false 是如何工作的?它是如何存储在内存中的?它是否需要 1 位空间或更多?它是某种类型的字符串吗?例如,
class Test {
public static void main(String[] args) {
System.out.println( 5 > 6 );
}
}
我明白了:
false
那么,false 的大小是多少?它看起来像 java 中的字符串。
【问题讨论】:
-
好吧,假和真呢?
-
"那么,
false的大小是多少?它看起来像 java 中的字符串。" --- 将其与int进行比较,后者是存储在 4 个字节中的 32 位值,但是“那么,123456的大小是多少?它看起来像 java 中的字符串。”。你看到你的问题的谬误了吗? -
@KrunalParmar 哇,你是不是混淆了这个问题。
truenot 有 8 字节表示。Boolean.TRUE可能,但这不是你要说的。 -
@learner 存储为 32 位值
00000000000000011110001001000000(十六进制0001E240)的数字将打印为字符串"123456",与布尔值相同,false将打印为字符串"false"。如果您假设一个布尔值被存储为字符串只是因为它在打印时具有字符串表示,那么您必须对int值做出相同的(有缺陷的)假设。