本文主要介绍“Java中布尔型占用了多少字节”。在日常操作中,相信很多人对Java中布尔占用了多少字节有疑问。边肖查阅了各种资料,整理出简单易用的操作方法,希望能帮助大家解决“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."
从上面可以清楚的看到,只有真假布尔值,这种数据类型只代表1bit的信息,但是并没有严格的声明它占用了多少空间,也就是说不管它占用了多少空间,只有1bit的信息才有意义。
' in rocle ' sjavavirtualmachine implementation,booleanarraysinjavapragraminglanguageareencodedas javavirtualmachinebytearray,使用using8bitsperbooleanelement '
在Oracle的Java虚拟机实现中,将Java语言中的布尔数组编码成Java虚拟机的字节数组,每个元素占用8位。
"TheJavaVirtualMachinedoesdirectlysupportbooleanarrays.Itsnewarrayinstruction(newarray)enablescreationofbooleanarrays.Arraysoftypebooleanareaccessedandmodifiedusingthebytearrayinstructionsbaloadandbastore(baload,bastore)."
Java虚拟机中虽然定义了boolean类型,但是支持是很有限的,没有专门的虚拟机指令。
同时在Java语言中,对boolean值的操作被替换成int数据类型。
再去看看Java虚拟机规范上是怎么写的。
"Although the Java Virtual Machine defines a boolean type, it only provides very limited support for it. There are no Java Virtual Machine instructions solely dedicated to operations on boolean values. Instead, expressions in the Java programming language that operate on boolean values are compiled to use values of the Java Virtual Machine int data type.
“The Java Virtual Machine encodes boolean array components using 1 to represent true and 0 to represent false . Where Java programming language boolean values are mapped by compilers to values of Java Virtual Machine type int , the compilers must use the same encoding.”
Java虚拟机使用1表示true,0表示false来编码boolean数组。
Java语言的boolean值被编译器映射成Java虚拟机的int类型的时候,也是一样的
到这里,得出一个结论:
boolean到底占几个字节,依赖于JVM
第一,无论Boolean占用多少字节,只有1bit的值是有意义的
第二,boolean类型被编译成int类型来使用,占4个byte。
第三,在Java虚拟机里,1表示true,0表示false。
至此,“布尔在Java中占用多少字节”的研究结束,希望能解决大家的疑惑。理论和实践的结合可以更好的帮助大家学习,所以赶紧试试吧!如果你想继续学习更多的相关知识,请继续关注网站,边肖会继续努力,给大家带来更多实用的文章!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/67427.html