Class: hello Superclass: java/lang/Object Source File: hello.java Access Flags: {} cf->major_version: 45 cf->constant_pool_count: 69 cf->fields_count: 5 cf->methods_count: 3 cf->attributes_count: 1 Constant Pool: 1: CONSTANT_String: hello 2: CONSTANT_String: blathering 3: CONSTANT_String: summaryState 4: CONSTANT_String: normal 5: CONSTANT_String: hello world 6: CONSTANT_String: never get here 7: CONSTANT_Integer: 2 8: CONSTANT_Integer: 1 9: CONSTANT_Integer: 0 10: CONSTANT_Class: Index 46, Name hello 11: CONSTANT_Class: Index 38, Name java/io/PrintStream 12: CONSTANT_Class: Index 32, Name java/lang/String 13: CONSTANT_Class: Index 62, Name java/lang/System 14: CONSTANT_Class: Index 54, Name java/lang/Object 15: CONSTANT_Fieldref - class_index: 10 name_and_type_index: 23 16: CONSTANT_Methodref - class_index: 11 name_and_type_index: 27 17: CONSTANT_Fieldref - class_index: 10 name_and_type_index: 24 18: CONSTANT_Methodref - class_index: 11 name_and_type_index: 29 19: CONSTANT_Methodref - class_index: 14 name_and_type_index: 25 20: CONSTANT_Methodref - class_index: 12 name_and_type_index: 30 21: CONSTANT_Fieldref - class_index: 13 name_and_type_index: 28 22: CONSTANT_Methodref - class_index: 12 name_and_type_index: 26 23: CONSTANT_NameAndType - name_index: 60 descriptor_index: 43 24: CONSTANT_NameAndType - name_index: 61 descriptor_index: 37 25: CONSTANT_NameAndType - name_index: 58 descriptor_index: 67 26: CONSTANT_NameAndType - name_index: 51 descriptor_index: 40 27: CONSTANT_NameAndType - name_index: 31 descriptor_index: 49 28: CONSTANT_NameAndType - name_index: 52 descriptor_index: 59 29: CONSTANT_NameAndType - name_index: 31 descriptor_index: 53 30: CONSTANT_NameAndType - name_index: 65 descriptor_index: 33 31: CONSTANT_Utf8: println 32: CONSTANT_Utf8: java/lang/String 33: CONSTANT_Utf8: ()I 34: CONSTANT_Utf8: summaryState 35: CONSTANT_Utf8: ConstantValue 36: CONSTANT_Utf8: blathering 37: CONSTANT_Utf8: Ljava/lang/String; 38: CONSTANT_Utf8: java/io/PrintStream 39: CONSTANT_Utf8: Exceptions 40: CONSTANT_Utf8: (I)C 41: CONSTANT_Utf8: hello.java 42: CONSTANT_Utf8: LineNumberTable 43: CONSTANT_Utf8: I 44: CONSTANT_Utf8: SourceFile 45: CONSTANT_Utf8: normal 46: CONSTANT_Utf8: hello 47: CONSTANT_Utf8: LocalVariables 48: CONSTANT_Utf8: Code 49: CONSTANT_Utf8: (C)V 50: CONSTANT_Utf8: NORMAL 51: CONSTANT_Utf8: charAt 52: CONSTANT_Utf8: out 53: CONSTANT_Utf8: (Ljava/lang/String;)V 54: CONSTANT_Utf8: java/lang/Object 55: CONSTANT_Utf8: BLATHERING 56: CONSTANT_Utf8: main 57: CONSTANT_Utf8: ([Ljava/lang/String;)V 58: CONSTANT_Utf8: 59: CONSTANT_Utf8: Ljava/io/PrintStream; 60: CONSTANT_Utf8: Verbosity 61: CONSTANT_Utf8: foo 62: CONSTANT_Utf8: java/lang/System 63: CONSTANT_Utf8: TERSE 64: CONSTANT_Utf8: never get here 65: CONSTANT_Utf8: length 66: CONSTANT_Utf8: 67: CONSTANT_Utf8: ()V 68: CONSTANT_Utf8: hello world class hello extends java/lang/Object public static final int TERSE; public static final int NORMAL; public static final int BLATHERING; private static int Verbosity; static java/lang/String foo; Method public static main (java/lang/String []) -> void 0 iconst_5 // Push int constant 1 istore_1 // Store int into local variable 2 iconst_0 // Push int constant 3 istore_1 // Store int into local variable 4 goto 23 // Branch always 7 getstatic #21 // Get static field from class 10 getstatic #17 // Get static field from class 13 iload_1 // Load int from local variable 14 invokevirtual #22 // Invoke instance method; dispatch based on class 17 invokevirtual #16 // Invoke instance method; dispatch based on class 20 iinc index: 1 const 1 // Increment local variable by constant 23 iload_1 // Load int from local variable 24 getstatic #17 // Get static field from class 27 invokevirtual #20 // Invoke instance method; dispatch based on class 30 if_icmplt 7 // Branch if value1 < value2 33 getstatic #15 // Get static field from class 36 tableswitch 0 to 2: default=91 0: 80 1: 72 2: 64 64 getstatic #21 // Get static field from class 67 ldc #2 // Push item from constant pool 69 invokevirtual #18 // Invoke instance method; dispatch based on class 72 getstatic #21 // Get static field from class 75 ldc #4 // Push item from constant pool 77 invokevirtual #18 // Invoke instance method; dispatch based on class 80 getstatic #21 // Get static field from class 83 ldc #3 // Push item from constant pool 85 invokevirtual #18 // Invoke instance method; dispatch based on class 88 goto 99 // Branch always 91 getstatic #21 // Get static field from class 94 ldc #6 // Push item from constant pool 96 invokevirtual #18 // Invoke instance method; dispatch based on class 99 getstatic #21 // Get static field from class 102 ldc #5 // Push item from constant pool 104 invokevirtual #18 // Invoke instance method; dispatch based on class 107 return // Return void from method Method () -> void 0 aload_0 // Load reference from local variable 1 invokenonvirtual #19 ()V> // Invoke instance method; special handling method invocations 4 return // Return void from method Method static () -> void 0 ldc #1 // Push item from constant pool 2 putstatic #17 // Put static field in class 5 return // Return void from method