布尔数组是否比相同大小的数字占用更多空间?

时间:2013-08-25 13:31:44

标签: java arrays size boolean

例如,大小为32的布尔数组会占用比整数变量更多的空间吗?如果是这样,那么为什么以及多少呢?

澄清:

在java中(如果这是相关的,请原谅我 - 我不确定)。这一行:

boolean arr=new boolean[32];

比这一行占用更多空间:

int num;

1 个答案:

答案 0 :(得分:4)

Java中32个boolean的数组大约是Java int空间的八倍。这是因为在大多数计算机体系结构中,最小的可寻址内存单元是一个8位字节,因此制作一个“打包”布尔数组需要额外的开销。

如果您希望每个布尔值使用一位,请使用BitSet类而不是布尔数组。请注意,除了数据本身之外,您还会获得一些开销,因此仅使用32位的数据结构可能不够经济,无法证明从简单数组切换出来。