static final이 아닌 다음 타입의 필드를 보고합니다: 클래스의 모든 인스턴스에서 volatile 필드를 업데이트하는 데 필요한 atomic 필드 업데이터는 하나뿐이므로 거의 항상 static일 수 있습니다.

업데이터를 final로 만들면 JVM이 성능 향상을 위해 액세스를 최적화할 수 있습니다.

예:


  class Main {
    private volatile int id;
    private AtomicIntegerFieldUpdater<Main> idFieldUpdater = AtomicIntegerFieldUpdater.newUpdater(Main.class, "id");
  }

빠른 수정을 적용한 후:


  class Main {
    private volatile int id;
    private static final AtomicIntegerFieldUpdater<Main> idFieldUpdater = AtomicIntegerFieldUpdater.newUpdater(Main.class, "id");
  }