在Java规范中,没有明确指出boolean的大小。在《Java虚拟机规范》给出了单个boolean占4个字节,和boolean数组1个字节的定义,具体 还要看虚拟机实现是否按照规范来,因此boolean占用1个字节或者4个字节都是有可能的。
为什么boolean类型只有2个 确占4个字节呢?
首先是引用类型是由多个基本类型的数据组成的,这一点需要明确一下,而转换到底层都是由c语言的6个基本类型组成的
我们从底层说起
我们在细看缓存行
我们知道缓存行里的数据 其实就是放的c的基本数据类型 ,最多可以放64个做少可以放8个
缓存行里读数据和写数据要通过总线去读,传输0 1 信息是用高低电压去读
总之用电压去代表这个信息
再加我们了解一些这个电势能 而势能呢有相互叠加和相互抵消的特性
缓存行,里数据越多,越拥塞越慢
所有让布尔类型变大,会让数据减少,变快
填充缓存行,用空间换取时间,提高效率
布尔类型用的多,才这么做的