这是一个非常简单但也许毫无价值的问题:以下两个中的一个消耗更多内存?
boolean[][] var = new boolean[32768][32768];
或
byte[][] var = new byte[32768][32768];
我听说有传言说java
在这两种情况下都会存储其中的每一段数据byte
。然后一个人更有效率?是否有可能以某种方式将long
值视为boolean
数组?
答案 0 :(得分:3)
布尔数据类型只有两个可能的值:true和false。将此数据类型用于跟踪真/假条件的简单标志。此数据类型代表一位信息,但其大小为"大小"不是精确定义的东西。
但是,在Oracle JVM中,它每位使用1个字节,因此内存大小和效率相同。
如果你想每位使用1位,我建议使用BitSet。
是的,虽然我无法想象您为什么想要这样做。是否有可能以某种方式将long值视为布尔数组?