例如,大小为32的布尔数组会占用比整数变量更多的空间吗?如果是这样,那么为什么以及多少呢?
澄清:
在java中(如果这是相关的,请原谅我 - 我不确定)。这一行:
boolean arr=new boolean[32];
比这一行占用更多空间:
int num;
答案 0 :(得分:4)
Java中32个boolean
的数组大约是Java int
空间的八倍。这是因为在大多数计算机体系结构中,最小的可寻址内存单元是一个8位字节,因此制作一个“打包”布尔数组需要额外的开销。
如果您希望每个布尔值使用一位,请使用BitSet
类而不是布尔数组。请注意,除了数据本身之外,您还会获得一些开销,因此仅使用32位的数据结构可能不够经济,无法证明从简单数组切换出来。