cas+volatile 是juc包的基石
// var1:对象 var2:对象属性在对象中的offset var4:newValue
public final Object getAndSetObject(Object var1, long var2, Object var4) {
// 结合下面的循环来看,如果修改失败就拿取一遍新的值
Object var5;
do {
var5 = this.getObjectVolatile(var1, var2);
} while(!this.compareAndSwapObject(var1, var2, var5, var4));
return var5;
}