为什么java.util.concurrent.atomic.AtomicBoolean在内部用int实现?

Mar*_*cin 20 java concurrency multithreading atomic java.util.concurrent

AtomicBoolean将其值存储在:

private volatile int value;
Run Code Online (Sandbox Code Playgroud)

然后,例如,提取其值的方式如下:

    public final boolean get() {
    return value != 0;
}
Run Code Online (Sandbox Code Playgroud)

它背后的原因是什么?为什么没用boolean

Pet*_*rey 8

AFAIK int是可以在不同机器类型中实现的最小型CAS操作.

注意:由于对象分配是8字节对齐的,因此使用较小的类型不会保存任何内存.