private static final long serialVersionUID = 1927816293512124184L;// (1)获取Unsafe实例private static final Unsafe unsafe = Unsafe.getUnsafe();//(2)存放变量value的偏移量private static final long valueOffset;//(3)判断JVM是否支持Long类型无锁CASstatic final boolean VM_SUPPORTS_LONG_CAS = VMSupportsCS8();private static native boolean VMSupportsCS8();static {try {//(4)获取value在AtomicLong中的偏移量valueOffset = unsafe.objectFieldOffset(AtomicLong.class.getDeclaredField("value"));} catch (Exception ex) { throw new Error(ex); }}//(5)实际变量值private volatile long value;public AtomicLong(long initialValue) {value = initialValue;}....
}