java.util.concurrent.atomic.AtomicLongFieldUpdaterjava.util.concurrent.atomic.AtomicIntegerFieldUpdaterjava.util.concurrent.atomic.AtomicReferenceFieldUpdaterstatic final.
Because only one atomic field updater is needed for updating a volatile field in all instances
of a class, it can almost always be static.
Making the updater final allows the JVM to optimize access for improved performance.
Example:
class Main {
private volatile int id;
private AtomicIntegerFieldUpdater<Main> idFieldUpdater = AtomicIntegerFieldUpdater.newUpdater(Main.class, "id");
}
After the quick-fix is applied:
class Main {
private volatile int id;
private static final AtomicIntegerFieldUpdater<Main> idFieldUpdater = AtomicIntegerFieldUpdater.newUpdater(Main.class, "id");
}