Java boolean 类型占多少字节 - chuwuwang/ReadingNote GitHub Wiki

  1. boolean 值只有 true 和 false 两种,这个数据类型只代表 1 bit 的信息,但是它的“大小”没有严格的定义。也就是说,不管它占多大的空间,只有一个bit的信息是有意义的。
  2. Java 虚拟机虽然定义了 boolean 类型,但是支持是有限的,没有专门的虚拟机指令。在 Java 语言中,对 boolean 值的操作被替换成 int 数据类型。
  3. Java 虚拟机没有直接支持 boolean 数组。boolean 类型数组和 byte 数组公用指令。在 Oracle 的 Java 虚拟机实现中,Java 语言中的 boolean 数组被编码成 Java 虚拟机的 byte 数组,每个元素占 8 比特。

总结:

  1. boolean 类型被编译成 int 类型来使用,占 4 个 byte 。
  2. boolean 数组被编译成 byte 数组类型,每个 boolean 数组成员占 1 个 byte 。
  3. 在 Java 虚拟机里,1 表示 true ,0 表示 false 。
  4. 这只是 Java 虚拟机的建议。可以肯定的是,不会是 1 个 bit 。

原文链接 https://binkery.com/archives/346.html