public class sun.jvm.hotspot.oops.java_lang_Class
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.jvm.hotspot.oops.java_lang_Class
  super_class: java.lang.Object
{
  static int klassOffset;
    descriptor: I
    flags: (0x0008) ACC_STATIC

  static int arrayKlassOffset;
    descriptor: I
    flags: (0x0008) ACC_STATIC

  static sun.jvm.hotspot.oops.IntField oopSizeField;
    descriptor: Lsun/jvm/hotspot/oops/IntField;
    flags: (0x0008) ACC_STATIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 50
            new sun.jvm.hotspot.oops.java_lang_Class$1
            dup
            invokespecial sun.jvm.hotspot.oops.java_lang_Class$1.<init>:()V
            invokestatic sun.jvm.hotspot.runtime.VM.registerVMInitializedObserver:(Lsun/jvm/hotspot/utilities/Observer;)V
         1: .line 55
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.oops.java_lang_Class this
         0: .line 42
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // sun.jvm.hotspot.oops.java_lang_Class this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/jvm/hotspot/oops/java_lang_Class;

  private static synchronized void initialize(sun.jvm.hotspot.types.TypeDataBase);
    descriptor: (Lsun/jvm/hotspot/types/TypeDataBase;)V
    flags: (0x002a) ACC_PRIVATE, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=6, locals=3, args_size=1
        start local 0 // sun.jvm.hotspot.types.TypeDataBase db
         0: .line 60
            aload 0 /* db */
            ldc "java_lang_Class"
            invokeinterface sun.jvm.hotspot.types.TypeDataBase.lookupType:(Ljava/lang/String;)Lsun/jvm/hotspot/types/Type;
            astore 1 /* jlc */
        start local 1 // sun.jvm.hotspot.types.Type jlc
         1: .line 61
            aload 1 /* jlc */
            ldc "_klass_offset"
            invokeinterface sun.jvm.hotspot.types.Type.getCIntegerField:(Ljava/lang/String;)Lsun/jvm/hotspot/types/CIntegerField;
            invokeinterface sun.jvm.hotspot.types.CIntegerField.getValue:()J
            l2i
            putstatic sun.jvm.hotspot.oops.java_lang_Class.klassOffset:I
         2: .line 62
            aload 1 /* jlc */
            ldc "_array_klass_offset"
            invokeinterface sun.jvm.hotspot.types.Type.getCIntegerField:(Ljava/lang/String;)Lsun/jvm/hotspot/types/CIntegerField;
            invokeinterface sun.jvm.hotspot.types.CIntegerField.getValue:()J
            l2i
            putstatic sun.jvm.hotspot.oops.java_lang_Class.arrayKlassOffset:I
         3: .line 63
            aload 1 /* jlc */
            ldc "_oop_size_offset"
            invokeinterface sun.jvm.hotspot.types.Type.getCIntegerField:(Ljava/lang/String;)Lsun/jvm/hotspot/types/CIntegerField;
            invokeinterface sun.jvm.hotspot.types.CIntegerField.getValue:()J
            l2i
            istore 2 /* oopSizeOffset */
        start local 2 // int oopSizeOffset
         4: .line 64
            new sun.jvm.hotspot.oops.IntField
            dup
            new sun.jvm.hotspot.oops.NamedFieldIdentifier
            dup
            ldc "oop_size"
            invokespecial sun.jvm.hotspot.oops.NamedFieldIdentifier.<init>:(Ljava/lang/String;)V
            iload 2 /* oopSizeOffset */
            i2l
            iconst_1
            invokespecial sun.jvm.hotspot.oops.IntField.<init>:(Lsun/jvm/hotspot/oops/FieldIdentifier;JZ)V
            putstatic sun.jvm.hotspot.oops.java_lang_Class.oopSizeField:Lsun/jvm/hotspot/oops/IntField;
         5: .line 65
            return
        end local 2 // int oopSizeOffset
        end local 1 // sun.jvm.hotspot.types.Type jlc
        end local 0 // sun.jvm.hotspot.types.TypeDataBase db
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0             db  Lsun/jvm/hotspot/types/TypeDataBase;
            1    6     1            jlc  Lsun/jvm/hotspot/types/Type;
            4    6     2  oopSizeOffset  I
    MethodParameters:
      Name  Flags
      db    

  public static sun.jvm.hotspot.oops.Klass asKlass(sun.jvm.hotspot.oops.Oop);
    descriptor: (Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/oops/Klass;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.oops.Oop aClass
         0: .line 69
            aload 0 /* aClass */
            invokevirtual sun.jvm.hotspot.oops.Oop.getHandle:()Lsun/jvm/hotspot/debugger/OopHandle;
            getstatic sun.jvm.hotspot.oops.java_lang_Class.klassOffset:I
            i2l
            invokeinterface sun.jvm.hotspot.debugger.OopHandle.getAddressAt:(J)Lsun/jvm/hotspot/debugger/Address;
            invokestatic sun.jvm.hotspot.oops.Metadata.instantiateWrapperFor:(Lsun/jvm/hotspot/debugger/Address;)Lsun/jvm/hotspot/oops/Metadata;
            checkcast sun.jvm.hotspot.oops.Klass
            areturn
        end local 0 // sun.jvm.hotspot.oops.Oop aClass
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  aClass  Lsun/jvm/hotspot/oops/Oop;
    MethodParameters:
        Name  Flags
      aClass  

  public static long getOopSize(sun.jvm.hotspot.oops.Oop);
    descriptor: (Lsun/jvm/hotspot/oops/Oop;)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.oops.Oop aClass
         0: .line 74
            getstatic sun.jvm.hotspot.oops.java_lang_Class.oopSizeField:Lsun/jvm/hotspot/oops/IntField;
            aload 0 /* aClass */
            invokevirtual sun.jvm.hotspot.oops.IntField.getValue:(Lsun/jvm/hotspot/oops/Oop;)I
            i2l
            lreturn
        end local 0 // sun.jvm.hotspot.oops.Oop aClass
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  aClass  Lsun/jvm/hotspot/oops/Oop;
    MethodParameters:
        Name  Flags
      aClass  

  public static java.lang.String asExternalName(sun.jvm.hotspot.oops.Oop);
    descriptor: (Lsun/jvm/hotspot/oops/Oop;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // sun.jvm.hotspot.oops.Oop aClass
         0: .line 81
            aload 0 /* aClass */
            invokestatic sun.jvm.hotspot.oops.java_lang_Class.asKlass:(Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/oops/Klass;
            astore 1 /* k */
        start local 1 // sun.jvm.hotspot.oops.Klass k
         1: .line 82
            aload 1 /* k */
            ifnonnull 8
         2: .line 83
            getstatic sun.jvm.hotspot.runtime.BasicType.T_VOID:Lsun/jvm/hotspot/runtime/BasicType;
            astore 2 /* type */
        start local 2 // sun.jvm.hotspot.runtime.BasicType type
         3: .line 85
            aload 0 /* aClass */
            invokevirtual sun.jvm.hotspot.oops.Oop.getHandle:()Lsun/jvm/hotspot/debugger/OopHandle;
            getstatic sun.jvm.hotspot.oops.java_lang_Class.arrayKlassOffset:I
            i2l
            invokeinterface sun.jvm.hotspot.debugger.OopHandle.getAddressAt:(J)Lsun/jvm/hotspot/debugger/Address;
         4: .line 84
            invokestatic sun.jvm.hotspot.oops.Metadata.instantiateWrapperFor:(Lsun/jvm/hotspot/debugger/Address;)Lsun/jvm/hotspot/oops/Metadata;
            checkcast sun.jvm.hotspot.oops.ArrayKlass
            astore 3 /* ak */
        start local 3 // sun.jvm.hotspot.oops.ArrayKlass ak
         5: .line 86
            aload 3 /* ak */
            ifnull 7
         6: .line 87
            aload 3 /* ak */
            invokevirtual sun.jvm.hotspot.oops.ArrayKlass.getElementType:()I
            invokestatic sun.jvm.hotspot.runtime.BasicType.intToBasicType:(I)Lsun/jvm/hotspot/runtime/BasicType;
            astore 2 /* type */
         7: .line 89
      StackMap locals: sun.jvm.hotspot.oops.Klass sun.jvm.hotspot.runtime.BasicType sun.jvm.hotspot.oops.ArrayKlass
      StackMap stack:
            aload 2 /* type */
            invokevirtual sun.jvm.hotspot.runtime.BasicType.getName:()Ljava/lang/String;
            areturn
        end local 3 // sun.jvm.hotspot.oops.ArrayKlass ak
        end local 2 // sun.jvm.hotspot.runtime.BasicType type
         8: .line 91
      StackMap locals:
      StackMap stack:
            aload 1 /* k */
            invokevirtual sun.jvm.hotspot.oops.Klass.getName:()Lsun/jvm/hotspot/oops/Symbol;
            invokevirtual sun.jvm.hotspot.oops.Symbol.asString:()Ljava/lang/String;
            areturn
        end local 1 // sun.jvm.hotspot.oops.Klass k
        end local 0 // sun.jvm.hotspot.oops.Oop aClass
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0  aClass  Lsun/jvm/hotspot/oops/Oop;
            1    9     1       k  Lsun/jvm/hotspot/oops/Klass;
            3    8     2    type  Lsun/jvm/hotspot/runtime/BasicType;
            5    8     3      ak  Lsun/jvm/hotspot/oops/ArrayKlass;
    MethodParameters:
        Name  Flags
      aClass  
}
SourceFile: "java_lang_Class.java"
NestMembers:
  sun.jvm.hotspot.oops.java_lang_Class$1
InnerClasses:
  sun.jvm.hotspot.oops.java_lang_Class$1