【发布时间】:2014-01-23 18:17:29
【问题描述】:
布尔数据类型仅计算为true 或false,因此它总是只占用一位内存。那为什么还需要额外的7位内存,是不是很浪费内存呢?
【问题讨论】:
-
它实际上比一个 8 位占用更多的内存 - JVM 通常使用 int 值实现布尔值。为什么这样做呢?为了更好地理解这一点,请考虑一个必须处理多个布尔值的 JVM - 如果一个布尔值仅使用一位,那么您的 JVM 将需要保持映射
variable to value byte and bit number。获取布尔值还需要执行 AND 操作(存储需要 OR)。所以将布尔值实现为完整字节(或整数)更容易 -
是的,对我们来说是浪费内存,但对 Java 人来说是高效且不太复杂的操作码。他们不必创建特定的操作码来从内存中加载和存储布尔值
-
标记为重复的问题有问题的答案(缺乏支持),但这里的 OP 想知道原因。这是不同的问题。
标签: java