我在GrepCode上遇到了 AtomicInteger 类的源代码,并找到了以下代码片段。
static {
try {
valueOffset = unsafe.objectFieldOffset
(AtomicInteger.class.getDeclaredField("value"));
} catch (Exception ex) { throw new Error(ex); }
}
private volatile int value;
静态块如何知道实例变量值的偏移量。加载和链接类时进行静态初始化。那么我们如何知道类加载时实例值的偏移量。类加载后创建对象。当创建对象时,“值”实例变量是否将具有固定的偏移量。请解释 。