利用字段更新器,可以针对对象的某个域(Field)进行原子操作,只能配合 volatile 修饰的字段使用,否则会出现
    异常

    1. Exception in thread "main" java.lang.IllegalArgumentException: Must be volatile type
    1. public class Test40 {
    2. public static void main(String[] args) {
    3. Student stu = new Student();
    4. AtomicReferenceFieldUpdater updater =
    5. AtomicReferenceFieldUpdater.newUpdater(Student.class, String.class, "name");
    6. System.out.println(updater.compareAndSet(stu, null, "张三"));
    7. System.out.println(stu);
    8. }
    9. }
    10. class Student {
    11. volatile String name;
    12. @Override
    13. public String toString() {
    14. return "Student{" +
    15. "name='" + name + '\'' +
    16. '}';
    17. }
    18. }

    true Student{name='张三'}