布尔类型为何有32位?(补充)

布尔类型为何有32位?(补充)

​ 昨天我总结了一些关于布尔类型为何占据32位内存空间的知识,尽管里边大部分的解释意思都到点上了,但我仍然觉得很不严谨,因此我在这里进行进一步补充。

​ 其实关于变量这个东西,它在硬盘上的状态和在内存上的状态是不一样的,变量对于我们来说,实际上是屏幕上的字符,而屏幕上的字符其本质上是以文件的形式存储的,即使它处于编辑状态位于内存上时,它本质上还是编辑器上的编码,它此时占用的内存大小其实就是这些字符的真实大小,而我们所说的32bit实际上是它被编译器编译成class文件后并被运行起来后,真正参与程序运算时所占用的内存地址,所以我们讨论的布尔型内存空间,是它参与程序的逻辑运算时在java运行时中占用的空间地址。

​ 诚然在运行时中我们也可以使用1bit的内存来存储一个布尔类型,但是在之前我也提到了,这是不可行的,计算机只能识别最少为8bit的信息,这是由于计算机设计导致的,那我们为什么不用8bit来表示一个布尔类型,而是用32bit呢?

​ 在我查阅资料后,找到了一个相对准确的答案,其实还是运行效率的事情:**使用32位对布尔类型进行存储会让系统效率更高。**只不过和内存为变量分配的空间关系没那么大,而是和CPU的存取机制有着直接的联系。**当今的CPU大多是32位或64位的,**因此CPU通常一次可以存取32位或者64位的信息,因此我们将布尔类型存储为32位可以最大限度的使用CPU的一次存取机会,让CPU的存取效率提升到最高。

​ 同时在内存中,系统为每个变量都提供一个4kb大小的页,多占用一些也是完全没关系的,还能提升CPU的吞吐量,较大限度的使用CPU,这其实是利大于弊的。

因此:布尔类型设计成32位的真正原因是为了提升CPU的效率,同时因为如今的计算机资源比以前丰富了很多,有牺牲存储效率提升运行效率的条件了,因此将布尔类型设计成了32位。归根结底是人类为了提升效率而特意设计成这样的。
PS:以我目前的理解基本上就这样了,毕竟我只是一个初学Java的新手,不过随着我的学习以后可能还会增加补充,这个位置可能还会增加的新的连接指向新文章。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值