首页 > 编程知识 正文

java语言属于什么语言(java的二维数组)

时间:2023-05-06 13:25:26 阅读:87200 作者:4854

提高短句的姿势、看也没有用、不关注等是什么?

我知道Java语言有布尔型。 每个布尔变量都包含true或false的逻辑值。 那么,要保存这个逻辑值,需要多少空间? 理论上,存储这个逻辑值可以是1比特,但是很多教科书提到这个问题时,也有人说布尔型的数据在存储器中只占1比特。

但是,稍有计算机常识的人都知道,计算机完成寻址操作时,是以字节为最小单位进行的。 也就是说,每次读取存储器内的数据时,最小只能准确到1字节,无法分别读取某个位的信息。 如果布尔型变量的值只占1位,则计算机每次读取1字节的信息,其中包含8个布尔变量的值。 计算机必须用某种算法判断这八个值中,哪一个是我们要找的值。 完成这个“8选”操作后,运算工作量会增加,所以这显然非常不合理。 那么,Java虚拟机如何存储布尔值呢?

为了彻底搞清楚这个问题,我们必须做进一步的彻底调查。 每次JDK发布新版本时,Java公式都会发布对应版本《虚拟机规范》。 在《虚拟机规范》中,对布尔存储有专门的解释,“定义了布尔数据类型,但只提供非常有限的支持。 Java虚拟机没有布尔值专用的字节码指令。 在Java语言表达式中操作的布尔型值在编译后被替换为Java虚拟机中的int数据类型,布尔型数组编码为Java虚拟机的字节数组。 因此,每个布尔元素占8位”。

由此可知,如果单独使用布尔型数据,则占4字节的区域,如果存储到布尔数组中,则每个要素只占1字节。

之后不久就发生了问题。 单独使用布尔型数据时,为什么要用4字节进行保存呢? 使用1字节或2字节的存储器不是更节约空间吗? 要知道,现在大多数处理器都是32位(不是操作系统的32位,而是CPU硬件),将布尔数据存储在4字节(32位)中是访问效率最高的

最后,《虚拟机规范》中有这样的规定,但是实现虚拟机时,真的要按照这样的规定执行吗? 也有伙伴问。 为了明确这个问题,我们还必须普及一些小常识。 世界上并非只有一家甲骨文公司实现了Java虚拟机(JVM ),其他制造商和机构有时也会宣布实现自己的Java虚拟机。 这些制造商和组织不知道自己的虚拟机是否按照《规范》的规定完全存储了布尔型数据。 他们综合考虑计算效率和存储空间两方面的性能。

读短文,提高姿势,如果想系统地学习Java编程,点击下面的“了解更多”就可以了。 不要让你进去,用QQ登录就行了。 有问题也可以加入我的QQ小组一起讨论!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。