public abstract class java.util.concurrent.atomic.AtomicReferenceFieldUpdater<T, V>
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: java.util.concurrent.atomic.AtomicReferenceFieldUpdater
  super_class: java.lang.Object
{
  public static <U, W> java.util.concurrent.atomic.AtomicReferenceFieldUpdater<U, W> newUpdater(java.lang.Class<U>, java.lang.Class<W>, java.lang.String);
    descriptor: (Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // java.lang.Class tclass
        start local 1 // java.lang.Class vclass
        start local 2 // java.lang.String fieldName
         0: .line 106
            new java.util.concurrent.atomic.AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl
            dup
         1: .line 107
            aload 0 /* tclass */
            aload 1 /* vclass */
            aload 2 /* fieldName */
            invokestatic sun.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
         2: .line 106
            invokespecial java.util.concurrent.atomic.AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl.<init>:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)V
            areturn
        end local 2 // java.lang.String fieldName
        end local 1 // java.lang.Class vclass
        end local 0 // java.lang.Class tclass
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0     tclass  Ljava/lang/Class<TU;>;
            0    3     1     vclass  Ljava/lang/Class<TW;>;
            0    3     2  fieldName  Ljava/lang/String;
    Signature: <U:Ljava/lang/Object;W:Ljava/lang/Object;>(Ljava/lang/Class<TU;>;Ljava/lang/Class<TW;>;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater<TU;TW;>;
    RuntimeVisibleAnnotations: 
      sun.reflect.CallerSensitive()
    MethodParameters:
           Name  Flags
      tclass     
      vclass     
      fieldName  

  protected void <init>();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.util.concurrent.atomic.AtomicReferenceFieldUpdater this
         0: .line 113
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 114
            return
        end local 0 // java.util.concurrent.atomic.AtomicReferenceFieldUpdater this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater<TT;TV;>;

  public abstract boolean compareAndSet(T, V, );
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: (TT;TV;TV;)Z
    MethodParameters:
        Name  Flags
      obj     
      expect  
      update  

  public abstract boolean weakCompareAndSet(T, V, );
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: (TT;TV;TV;)Z
    MethodParameters:
        Name  Flags
      obj     
      expect  
      update  

  public abstract void set(T, );
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: (TT;TV;)V
    MethodParameters:
          Name  Flags
      obj       
      newValue  

  public abstract void lazySet(T, );
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: (TT;TV;)V
    MethodParameters:
          Name  Flags
      obj       
      newValue  

  public abstract V get();
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: (TT;)TV;
    MethodParameters:
      Name  Flags
      obj   

  public V getAndSet(T, );
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // java.util.concurrent.atomic.AtomicReferenceFieldUpdater this
        start local 1 // java.lang.Object obj
        start local 2 // java.lang.Object newValue
         0: .line 188
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* obj */
            invokevirtual java.util.concurrent.atomic.AtomicReferenceFieldUpdater.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 3 /* prev */
        start local 3 // java.lang.Object prev
         1: .line 189
            aload 0 /* this */
            aload 1 /* obj */
            aload 3 /* prev */
            aload 2 /* newValue */
            invokevirtual java.util.concurrent.atomic.AtomicReferenceFieldUpdater.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 0
         2: .line 190
            aload 3 /* prev */
            areturn
        end local 3 // java.lang.Object prev
        end local 2 // java.lang.Object newValue
        end local 1 // java.lang.Object obj
        end local 0 // java.util.concurrent.atomic.AtomicReferenceFieldUpdater this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater<TT;TV;>;
            0    3     1       obj  TT;
            0    3     2  newValue  TV;
            1    3     3      prev  TV;
    Signature: (TT;TV;)TV;
    MethodParameters:
          Name  Flags
      obj       
      newValue  
}
Signature: <T:Ljava/lang/Object;V:Ljava/lang/Object;>Ljava/lang/Object;
SourceFile: "AtomicReferenceFieldUpdater.java"
NestMembers:
  java.util.concurrent.atomic.AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl  java.util.concurrent.atomic.AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl$1
InnerClasses:
  private final AtomicReferenceFieldUpdaterImpl = java.util.concurrent.atomic.AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl of java.util.concurrent.atomic.AtomicReferenceFieldUpdater