@NonNull这个注解可以用在成员方法、构造方法的参数前面或者用在成员变量上方,会自动产生一个关于此参数的非空检查,如果参数为空,则抛出一个空指针异常。//成员方法参数加上@NonNull注解
public String getName(@NonNull Person p){
return p.getName();
}
///// 相当于 ///////
public St...
CAS是Compare And Swap。它是java.util.concurrent包的基石。我们知道,如果线程直接对volatile变量赋值(原子性操作),也是可以实现线程安全的,但更多情况,我们线程对volatile变量的修改与volatile变量的当前值是有关系的!!,这就需要先对这个volatile变量读,然后再写,这就有了至少两个步骤了,所以这个操作不是原子性的,所以就不能保证线...