Java中为啥boolean类型是原子性的
第一个:明确boolean类型数据占几个字节,《Java虚拟机规范》一书中的描述:“虽然定义了boolean这种数据类型,但是只对它提供了非常有限的支持。在Java虚拟机中没有任何供boolean值专用的字节码指令,Java语言表达式所操作的boolean值,在编译之后都使用Java虚拟机中的int数据类型来代替,而boolean数组将会被编码成Java虚拟机的byte数组,每个元素boolean元素占8位”,因此可以认为单独使用时占4个字节,在数组中占用1个字节。
第二个:Java内存模型规定,允许虚拟机将没有被volatile修饰的64位数据的读写操作划分成两次32位的操作,因此不具有原子性。对于64位数据是具有原子性的。可参考《深入理解Java虚拟机》12.3.4相关章节,有详细说明。
■网友
【Java中为啥boolean类型是原子性的】 原子性的意思是没有中间结果。
推荐阅读
- 为啥看到书柜上的藏书会有心旷神怡的感觉
- 为啥知乎上普便有一种【我在北上广深打工,所以拥有更好的视野】这样的错觉
- 为啥工商银行的用户体验如此之差
- 汽车|看了中消协4S店服务测评调查结果,终于知道法系车为啥卖不好了
- 你为啥从窝窝商城离职?
- 为啥5G和2.4G默认的BSSID是相同的
- 为啥电器实体店的价格比淘宝贵那么多
- 现在在线学习视频有很多了,为啥大部分人还是喜欢下载下来观看
- dart这编程语言现在发展怎么样了,语法与Java,c#很相似,甚至更简洁
- 为啥到现在你还没有女朋友 ?