报告这些类型的字段: 其类型为 static final。 因为在一个类的所有实例中,只需要一个原子字段更新器来更新 volatile 字段,所以它几乎总是 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");
  }