Boolean
对象还是boolean
原始类型?对象的大小可能为16个字节(虽然具体实现取决于语言和编译器),而boolean
通常只会占用4个字节(隐式地使用了int
)。因此,boolean[]
占用N*4
个字节(其中N
是数组的大小),再加上一些对象头。如果按照你对Boolean
大小的假设,Boolean[]
将占用N * 16
+ header个字节。int
中打包32个布尔值(你需要手动编写几个位操作),就像BitSet
类所做的那样,这样可以更好地节省空间。length
(整数)属性。 - Prince John Wesley数组对象的大小将为:8 + 4 = 12字节(这里的4是数组的长度) 如果数组长度为N,则布尔元素将占用N * 16字节 因此,大小将为:(12 + N * 16)字节,向上取整到8
例如:如果N = 10,则12 + 10 * 16 = 172,经过JVM舍入后,大小将为176字节。
java.util.BitSet
,它专门设计用于存储布尔值数组。 - Yuriy Nakonechnyy