`

boolean占用几个字节

    博客分类:
  • JVM
阅读更多
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 does directly support boolean arrays. Its newarray instruction enables creation of boolean arrays. Arrays of type boolean are accessed and modified using the byte array instructions baload and bastore.2

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.

csdn上的有人这样说 

我的结论是:
1)boolean a=true;//这个a在JVM中占4个字节即:32位。
2)boolean[] b = new boolean[10];//数组时,每一个boolean在JVM中占一个字节。
理由:
1)JAVA规范中没有定义boolean类型的大小。
2)但是:在JVM规范第2版中讲得十分清楚。我上边的结论就是从它当中取出来的。
根据:(JVM规范第2版 3.3.4节)
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.
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 virtual machine type int, whose values are 32-bit signed two's-complement integers。
Arrays of type boolean are accessed and modified using the byte array instructions
In Sun's JDK releases 1.0 and 1.1, and the Java 2 SDK, Standard Edition, v1.2, boolean arrays in the Java programming language are encoded as Java virtual machine byte arrays, using 8 bits per boolean element.


我比较赞同这一点 

我一开始也认为是用int类型表示的 boolean
但boolean 数组的问题  学习下、、、、、
分享到:
评论

相关推荐

    Java 对象(数组)占多大空间(几个字节) 手把手做实验

    当开启这两项压缩选项时,对象的引用占据4个字节。实验中创建了一个名为`Person`的对象,发现其占用32字节。这32字节通常包括:对象头(12字节,其中8字节用于Mark Word,4字节用于Klass Pointer),实例数据(假设...

    vb中数据类型[收集].pdf

    5. **逻辑型(Boolean)**:占用2个字节,只有True和False两个值。在转换为数值型时,True表示-1,False表示0。 6. **字符串型(String,类型符 `$`)**:是一个字符序列,用双引号括起。字符串长度可变,但需要...

    GitHub 上标星 115k+ 的 Java 教程.pdf

    * long 占用 8 个字节,取值范围为 -9223372036854775808 到 9223372036854775807 * float 占用 4 个字节,取值范围为 -3.4e38 到 3.4e38 * double 占用 8 个字节,取值范围为 -1.8e308 到 1.8e308 * boolean 占用 1...

    vb中数据类型[总结].pdf

    在内存中占2个字节。逻辑型数据转换为数值型时,True对应-1,False对应0;反之,非0数值转换为True,0转换为False。 6. **字符串型(String,$)**:由一个或多个字符组成的序列,用双引号括起。字符串长度可变,...

    本章主要内容基本数据类型常量变量表达式常用内部函数PPT学习教案.pptx

    9. 布尔型(Boolean):占用2个字节,只存储True或False两个值。在转换中,0会被认为是False,非0值被视为True。转换回数值时,False变为0,True转换为-1。 10. 日期型(Date):占用8个字节,能表示从公元100年1月...

    基本数据类型存储格式浅析

    - 布尔型在很多语言中如Java和Python中通常占1个字节,但在C++中,bool的大小依赖于编译器实现,可能占用1至32位不等。通常,true用非零值表示,false用0表示。 5. 空类型(Void) - Void类型在C/C++中用于函数...

    Java中变量类型及其字节长度.docx

    - 占两个字节,可以存储Unicode编码表中的字符,包括英文字符、数字和汉字等。 ##### 8. Boolean类型 - **字节长度**:1/8字节(1位) - **取值范围**:true/false - **应用场景**: - 用于逻辑运算。 - 在条件...

    vb数据类型

    5. 逻辑型 Boolean:用于存储True或False两种状态,占用1个字节的内存。 6. 字符串型 String:用于存储由双引号括起的任意字符序列。 7. 日期型 Date:用于存储日期和时间,范围是100年1月1日到9999年12月31日。 ...

    C++中科院的教案

    - `short` 和 `short int`:较小的整数类型,通常占用2个字节。 - `long` 和 `long int`:较大的整数类型,通常占用4个字节。 - `long long` 和 `long long int`:更大的整数类型,一般占用8个字节。 - `...

    pascal语言

    1. **Shortint**:这是一种8位的带符号整数类型,数值范围为-128至128,占用1个字节。 2. **Integer**:这是16位的带符号整数类型,数值范围为-32768至32767,占用2个字节。 3. **Longint**:这是一种32位的带符号...

    Java基础知识点面试专题.pdf

    `int`、`float`占用4个字节,`short`、`char`占用2个字节,`long`占用8个字节,`byte`和`boolean`占用1个字节。这些基本数据类型直接存储值,而它们的包装类如`Integer`则存储对象引用,值存在于堆中。 `int`与`...

    2021Java最新面试题库.doc

    它们各自占用的字节数分别为:byte占1字节,short占2字节,int占4字节,long占8字节,float占4字节,double占8字节,char占2字节,boolean占1位(不是字节)。 关于String类,它是一个不可变类,由final修饰,因此...

    Java的数据类型Java的数据类型

    - `double`:双精度浮点型,占用8个字节(64位),取值范围大约为±4.9×10^-324到±1.8×10^308,通常用于需要更高精度的计算场景。 3. **字符型(Character Type)** - `char`:字符类型,占用2个字节(16位)...

    10万字总结java面试题和答案.pdf

    Java 语言有以下几个特点: 1. 简单易学:Java 语言易于学习和掌握,适合初学者和专业开发者。 2. 丰富的类库:Java 提供了丰富的类库,涵盖了字符串、数组、集合、输入/输出、网络编程等多个方面。 3. 面向对象:...

    mysql数据类型.doc

    例如,如果你知道一个字段只会有少量几个可能的值,那么使用ENUM或SET可能会更节省空间。对于大量数字操作的字段,整数类型更适合,而浮点或定点类型则适用于需要精确计算的情况。日期和时间类型则是处理时间信息的...

    Java.doc (java基础教学)

    - **浮点数类型**:`float` 类型占用4个字节,而 `double` 类型占用8个字节。 - **字符类型**:`char` 类型占用2个字节,这是因为Java采用了Unicode编码,使得每个字符都能正确地表示出来。 - **布尔类型**:`...

    金蝶面试题2011-5-27

    7. boolean:布尔类型,占用 1 个字节,取值范围为 true 或 false。 8. short:短整数类型,占用 2 个字节,取值范围为 -32768 到 32767。 有状态 bean 和无状态 bean 在 Java 中,Bean 是一种特殊的 Java 类,它...

    阿里面试题-JAVA基础.docx

    Java中有8种基本数据类型,包括4种整型(byte:1字节,short:2字节,int:4字节,long:8字节),4种浮点型(float:4字节,double:8字节),1种字符型(char:2字节)和1种布尔型(boolean:1字节或多位,具体取...

Global site tag (gtag.js) - Google Analytics