淘宝式网站建设,常州住房和城乡建设局网站首页,制作社交网站,中国机械网官网类型分类所占字节取值范围boolean布尔型1bit0 false、 1 true (1个bit 、1个字节、4个字节)char 字符型#xff08;Unicode字符集中的一个元素#xff09; 2字节-32768#xff5e;32767#xff08;-2的15次方#xff5e;2的15次方-1#xff09;byte整型1字节-128Unicode字符集中的一个元素 2字节-3276832767-2的15次方2的15次方-1byte整型1字节-128127-2的7次方2的7次方-1short整型2字节-3276832767-2的15次方2的15次方-1int整型4字节-21474836482147483647-2的31次方2的31次方-1long整型8字节-92233720368547748089223372036854774807-2的63次方2的63次方-1float浮点型4字节 3.402823e381.401298e-45 和 -3.402823e38-1.401298e-45 e38 表示乘以10的38次方而e-45 表示乘以10的负45次方 double浮点型8字节 1.797693e3084.9000000e-324 和 -1.797693e308-4.9000000e-324同上 Java编程语言支持的八种原始数据类型是 bytebyte数据类型是8位带符号的二进制补码整数。最小值为-128最大值为127含。的byte数据类型可以是在大型保存存储器有用 阵列其中存储器的节省实际上重要的。它们也可以用于int限制其位置的地方以澄清您的代码变量范围有限的事实可以作为文档的一种形式。shortshort数据类型是一个16位带符号的二进制补码整数。最小值为-32,768最大值为32,767含。与一样byte也适用相同的准则在实际short需要节省内存的情况下可以使用a来以大阵列保存内存。int默认情况下int数据类型是32位带符号的二进制补码整数其最小值为-231最大值为231 -1。在Java SE 8和更高版本中可以使用int数据类型表示无符号的32位整数其最小值为0最大值为2 32 -1。使用Integer类可将int数据类型用作无符号整数。有关更多信息请参见“数字类”部分。像静态方法compareUnsigneddivideUnsigned等已被添加到 Integer类以支持算术运算的无符号整数。longlong数据类型是64位二进制补码整数。带符号的long的最小值为-263最大值为263 -1。在Java SE 8和更高版本中可以使用long数据类型表示无符号的64位长其最小值为0最大值为2 64 -1。当您需要的值范围比所提供的宽时请使用此数据类型int。该 Long班还包含方法如compareUnsigneddivideUnsigned等长以支持算术运算的无符号。floatfloat数据类型是单精度32位IEEE 754浮点。其值的范围超出了本文的讨论范围但在Java语言规范的“ 浮点类型格式和值”部分中进行了指定。与针对byte和的建议一样如果您需要将内存保存在大的浮点数数组中short请使用float而不是double。永远不要将这种数据类型用于精确值例如货币。为此您将需要使用 java.math.BigDecimal类。 数字和字符串覆盖BigDecimal以及Java平台提供的其他有用的类。doubledouble数据类型是双精度64位IEEE 754浮点数。其值的范围超出了本文的讨论范围但在Java语言规范的“ 浮点类型格式和值”部分中进行了指定。对于十进制值此数据类型通常是默认选择。如上所述永远不要将这种数据类型用于精确值例如货币。布尔值boolean数据类型只有两个可能的值true和false。将此数据类型用于跟踪真/假条件的简单标志。这种数据类型代表一小部分信息但是其“大小”并不是精确定义的。charchar数据类型是单个16位Unicode字符。它的最小值为’\u0000’或0最大值为’\uffff’或65,535包括端值。boolean究竟占几个字节
1、1个bit1/8个字节: 由于boolean类型的值只有true和false两种逻辑值在编译后会使用1和0来表示这两个数在内存中按位运算仅需1位(bit)即可位是计算机中最小的存储单位。2、1个字节 虽然编译后1和0只需占有1位空间但是由于计算机存储数据的最小单位是1个字节因此boolean类型的值在实际存储的时候是用1位存储其他7位用0填补即true:0000 0001,false:0000 0000。3、4个字节 《Java虚拟机规范》一书中的描述“虽然定义了boolean这种数据类型但是只对它提供了非常有限的支持。在Java虚拟机中没有任何供boolean值专用的字节码指令Java语言表达式所操作的boolean值在编译之后都使用Java虚拟机中的int数据类型来代替而boolean数组将会被编码成Java虚拟机的byte数组每个元素boolean元素占8位”。这样我们可以得出boolean类型占了单独使用是4个字节在数组中又是1个字节。 从《Java虚拟机规范》中我们看到虚拟机使用int来代替boolean这样岂不是更加浪费内存空间了吗经过查阅资料发现这是由于计算机CPU所造成的对于当下32位的处理器(CPU)来说一次处理数据是32位(这里不是指的是32/64位系统而是指CPU硬件层面)具有高效存取的特点。
总结 boolean单个占4个字节boolean数组1个字节Java规范未明确定义具体要看虚拟机而虚拟机又要看处理器(CPU)。