boolean在Java中占几个字节的问题

Posted jzl123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了boolean在Java中占几个字节的问题相关的知识,希望对你有一定的参考价值。

官方的定义是这样的:

boolean: The boolean data type has only two possible values: true and false. Use this data type for simple flags that track true/false conditions. This data type represents one bit of information, but its "size" isn‘t something that‘s precisely defined.
大致的意思是说布尔值只有true/false,但是其大小并不是精确确定的。
 
在Java虚拟机规范中,有相关的说明
  • boolean值在编译之后都使用Java虚拟机中的int数据类型来代替,而int是4个字节,那么boolean值就是4个字节。
  • boolean类型数组的访问与修改共用byte类型数组的baload和 bastore指令,因为两者共用,只有两者字节一样才能通用呀,所以byte数组中一个byte是1个字节,那么boolean数组中boolean是1个字节。
虽然规范如此,但具体的实现还是要看Java虚拟机是否遵守此规范。也就是说,一个字节或四个字节都是有可能的。
 

以上是关于boolean在Java中占几个字节的问题的主要内容,如果未能解决你的问题,请参考以下文章

C# bool 占几个字节

为啥c#中bool要占4个字节 32位呢 为啥不用像byte 1个字节存储呢

一个大写字母和一个小写字母分别占几个字节

一个string字符串占多少内存空间

int在64位操作系统中占多少位

C语言中bool是占用1字节吗?如果只占用一位怎么做呢?