解读为何java中的boolean类型是32位的
作者:何妨徐行
这篇文章主要介绍了为何java中的boolean类型是32位的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
为何java的boolean类型是32位
我们首先知道boolean类型的值有两个“真和假”。
它到底是几个字节的呢?
答:
boolean类型是通过int实现的,那么既然int占4个字节,boolean也自然占4个字节。
接下来看图
我们从底层来了解为什么要选择调用int。
(图中的高速缓存简化了 实际上还有:运算单元-寄存器-l1-l2-l3等)
我们知道
计算机中最小的单位是1bit,而最小的存储单元是一个字节,我们不用一字节为存储单位,是为了提高读取数据的速率。
由图示,我们可以知道计算机读取数据的方式:
通过总线来读取电压信号,每次只能读一个数据,否则会扰乱电压信号。
所以我们可以知道:数据是依次读取的,读下一个之前,必须先读完正在读取的数据。
当boolean如果用一字节来表示的话,程序中会有大量的数据在空间中。当我们想要使用数据的时候,就会从数据总体中选择数据。然而同时只能读取一个数据。由于此时数据总体数量比较大,所以读到数据的概率会比较小。
而如果用int来表示,它会占用4个字节,会使缓存的数据总量会减少,降低了数据阻塞的概率。这有利于提高我们读取数据的效率。
对于当下32位的处理器来说,一次处理数据是32位(这里不是指的是32/64位系统,而是指CPU硬件层面),具有高效存取的特点。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。