写点什么

为什么 boolean 存储需要 32bit?

作者:Geek_10c5db
  • 2022 年 4 月 29 日
  • 本文字数:357 字

    阅读完需:约 1 分钟

计算机分配的最小单元必须为 1 字节(8 bit),理论上 boolean 只需要 1 bit,不过在 java 中分配了 32 bit。 这是为什么呢?

实际上呢是因为 CPU 内部有储存能力,分为三级缓存,它是由基准单位的,缓存是由一个个小单位组成的,这个小单位就叫缓存行(一个缓存行能存 64 字节的数据),CPU 中的中央处理器(逻辑运算单元)通过导线在缓存行中拿数据。计算机内部所有零件之间传输数据都是靠高低电压来传输的,高电压为 1,低电压是 0。

如图,CPU 在缓存行中拿数据的时候,每次只能拿取一个,由此可想到。如果这个缓存行中存的数据很多,但是每一个缓存数据的内容却很少,这就会大大的浪费时间,假若像图中所画,一个数据占了一大半的内存,这样发送数据的话,就会一次性发出了一大半的数据,性能将会大幅提升。所以 Boolean 设为 32 bit,被阻挡的概率就会降低,平均读取的时间就会加快。


发布于: 刚刚阅读数: 2
用户头像

Geek_10c5db

关注

还未添加个人签名 2022.04.22 加入

授人以鱼不如授人以渔

评论

发布
暂无评论
为什么boolean存储需要32bit?_java基础_Geek_10c5db_InfoQ写作社区