布尔比字节

时间:2016-03-19 17:44:32

标签: java byte

这是一个非常简单但也许毫无价值的问题:以下两个中的一个消耗更多内存?

boolean[][] var = new boolean[32768][32768];

byte[][] var = new byte[32768][32768];

我听说有传言说java在这两种情况下都会存储其中的每一段数据byte。然后一个人更有效率?是否有可能以某种方式将long值视为boolean数组?

1 个答案:

答案 0 :(得分:3)

来自Primitive Data Types

  

布尔数据类型只有两个可能的值:true和false。将此数据类型用于跟踪真/假条件的简单标志。此数据类型代表一位信息,但其大小为"大小"不是精确定义的东西。

但是,在Oracle JVM中,它每位使用1个字节,因此内存大小和效率相同。

如果你想每位使用1位,我建议使用BitSet。

  

是否有可能以某种方式将long值视为布尔数组?

是的,虽然我无法想象您为什么想要这样做。