java source code:
static {
try {
valueOffset = unsafe.objectFieldOffset
(AtomicBoolean.class.getDeclaredField("value"));
} catch (Exception ex) { throw new Error(ex); }
}
默认构造函数不执行任何操作:
public AtomicBoolean() {
}
变量"值偏移"是指内存中的偏移位置?我不明白为什么默认情况下构造函数将其初始化为"false"。我该如何理解这一点?
由于默认构造函数中未设置任何值,因此初始值是value
字段的初始化值 - 这是一个 int,没有显式值,因此它的默认值为零。
源代码:
private volatile int value;
/**
* Creates a new {@code AtomicBoolean} with the given initial value.
*
* @param initialValue the initial value
*/
public AtomicBoolean(boolean initialValue) {
value = initialValue ? 1 : 0;
}
/**
* Creates a new {@code AtomicBoolean} with initial value {@code false}.
*/
public AtomicBoolean() {
}
将其设置为false
与未初始化的boolean
字段一致。