static final이 아닌 다음 타입의 필드를 보고합니다:
java.util.concurrent.atomic.AtomicLongFieldUpdaterjava.util.concurrent.atomic.AtomicIntegerFieldUpdaterjava.util.concurrent.atomic.AtomicReferenceFieldUpdatervolatile 필드를 업데이트하는 데 필요한 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");
}