我在网上找过很多资料,有说1bit的也有说1byte的。
于是,
我自己想了个证明大小的办法如下
public static void main(String[] args) {
int _1_MB = 1024*1024;
boolean[] b = new boolean[_1_MB*10];
System.out.println("no excption");
}
申请包含10M个boolean的数组,如果boolean是1byte的话,那么大小就刚好是10M
如果是1bit的话,大小就应该是10/8M,然后加上虚拟机参数Xmx9来运行这个程序,最后结果是内存溢出,11的时候不溢出。以此我判定boolean是1byte也就是8bit。
另外,把boolean换成byte,得到的结果是相同的,更证明boolean和byte的占位是一致的,
我对此一直深信事实胜于雄辩,于是乎,网上那些众说纷纭也就不以为然。
直到我今天在一本书上看到说boolean是1bit的,(肯定不是单位有误,因为后面一句是byte是8bit)。
所以烦劳大神给个官方权威的资料来解释。
如果结果真是1bit,为什么会跟我的测试程序有冲突。没多少分了,所以我就吝啬一点