True使用的内存多于False吗?

时间:2014-06-14 21:12:41

标签: java memory binary boolean

如果我有一些检查是否属实的情况,那么就这样做。它会不会检查它是否不是假的,反之亦然?如果检查是在布尔值而不是非常低的位数,它是否也会占用更少的空间? 在Java中,也可能是其他语言。

boolean x;
byte y,k,z,a;
//x and k tests, y, z and a just assigned value if they pass any of these tests
if(x==true){y=0;}  if(x!=true){z=1}  //Are these quicker or take less space
if(x!=false){y=0;} if(x==false){z=1} //Than these ?

if(k==1){a=2;} //Or these ?
if(k!=1){a=2;} 

1 个答案:

答案 0 :(得分:0)

在运行时,由基本类型变量(如布尔值)占用的空间不依赖于其值。

因此,您最多会看到类文件或源代码的大小略微增加(几个字节)。由于类和源文件只存储一次,因此这种差异可以完全忽略不计。

至于执行速度,编译器很可能会对其进行优化,即使它不是即时编译器也是如此。即使不是这种情况,否定布尔值大约需要1 ns(0.000000001秒),因此它不太可能显着影响程序的速度。