Skip to content

Instantly share code, notes, and snippets.

@alexchiri
Created January 27, 2013 12:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alexchiri/4648077 to your computer and use it in GitHub Desktop.
Save alexchiri/4648077 to your computer and use it in GitHub Desktop.
Classfile /C:/Users/alex/IdeaProjects/Tests/out/production/Tests/com/alexchiri/bytecode/ASimpleClass.class
Last modified 27-jan-2013; size 1319 bytes
MD5 checksum 441505122fb6fa3d285243a382ddef46
Compiled from "ASimpleClass.java"
public class com.alexchiri.bytecode.ASimpleClass
SourceFile: "ASimpleClass.java"
minor version: 0
major version: 51
flags: ACC_PUBLIC, ACC_SUPER
Constant pool:
#1 = Methodref #19.#44 // java/lang/Object."<init>":()V
#2 = Class #45 // java/util/ArrayList
#3 = Methodref #2.#44 // java/util/ArrayList."<init>":()V
#4 = String #46 // Type
#5 = InterfaceMethodref #47.#48 // java/util/List.add:(Ljava/lang/Object;)Z
#6 = String #49 // erasure
#7 = InterfaceMethodref #47.#50 // java/util/List.iterator:()Ljava/util/Iterator;
#8 = InterfaceMethodref #51.#52 // java/util/Iterator.hasNext:()Z
#9 = InterfaceMethodref #51.#53 // java/util/Iterator.next:()Ljava/lang/Object;
#10 = Class #54 // java/lang/String
#11 = Fieldref #55.#56 // java/lang/System.out:Ljava/io/PrintStream;
#12 = Class #57 // java/lang/StringBuilder
#13 = Methodref #12.#44 // java/lang/StringBuilder."<init>":()V
#14 = Methodref #12.#58 // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
#15 = String #59 //
#16 = Methodref #12.#60 // java/lang/StringBuilder.toString:()Ljava/lang/String;
#17 = Methodref #61.#62 // java/io/PrintStream.println:(Ljava/lang/String;)V
#18 = Class #63 // com/alexchiri/bytecode/ASimpleClass
#19 = Class #64 // java/lang/Object
#20 = Utf8 <init>
#21 = Utf8 ()V
#22 = Utf8 Code
#23 = Utf8 LineNumberTable
#24 = Utf8 LocalVariableTable
#25 = Utf8 this
#26 = Utf8 Lcom/alexchiri/bytecode/ASimpleClass;
#27 = Utf8 main
#28 = Utf8 ([Ljava/lang/String;)V
#29 = Utf8 s
#30 = Utf8 Ljava/lang/String;
#31 = Utf8 i$
#32 = Utf8 Ljava/util/Iterator;
#33 = Utf8 args
#34 = Utf8 [Ljava/lang/String;
#35 = Utf8 strings
#36 = Utf8 Ljava/util/List;
#37 = Utf8 LocalVariableTypeTable
#38 = Utf8 Ljava/util/List<Ljava/lang/String;>;
#39 = Utf8 StackMapTable
#40 = Class #65 // java/util/List
#41 = Class #66 // java/util/Iterator
#42 = Utf8 SourceFile
#43 = Utf8 ASimpleClass.java
#44 = NameAndType #20:#21 // "<init>":()V
#45 = Utf8 java/util/ArrayList
#46 = Utf8 Type
#47 = Class #65 // java/util/List
#48 = NameAndType #67:#68 // add:(Ljava/lang/Object;)Z
#49 = Utf8 erasure
#50 = NameAndType #69:#70 // iterator:()Ljava/util/Iterator;
#51 = Class #66 // java/util/Iterator
#52 = NameAndType #71:#72 // hasNext:()Z
#53 = NameAndType #73:#74 // next:()Ljava/lang/Object;
#54 = Utf8 java/lang/String
#55 = Class #75 // java/lang/System
#56 = NameAndType #76:#77 // out:Ljava/io/PrintStream;
#57 = Utf8 java/lang/StringBuilder
#58 = NameAndType #78:#79 // append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
#59 = Utf8
#60 = NameAndType #80:#81 // toString:()Ljava/lang/String;
#61 = Class #82 // java/io/PrintStream
#62 = NameAndType #83:#84 // println:(Ljava/lang/String;)V
#63 = Utf8 com/alexchiri/bytecode/ASimpleClass
#64 = Utf8 java/lang/Object
#65 = Utf8 java/util/List
#66 = Utf8 java/util/Iterator
#67 = Utf8 add
#68 = Utf8 (Ljava/lang/Object;)Z
#69 = Utf8 iterator
#70 = Utf8 ()Ljava/util/Iterator;
#71 = Utf8 hasNext
#72 = Utf8 ()Z
#73 = Utf8 next
#74 = Utf8 ()Ljava/lang/Object;
#75 = Utf8 java/lang/System
#76 = Utf8 out
#77 = Utf8 Ljava/io/PrintStream;
#78 = Utf8 append
#79 = Utf8 (Ljava/lang/String;)Ljava/lang/StringBuilder;
#80 = Utf8 toString
#81 = Utf8 ()Ljava/lang/String;
#82 = Utf8 java/io/PrintStream
#83 = Utf8 println
#84 = Utf8 (Ljava/lang/String;)V
{
public com.alexchiri.bytecode.ASimpleClass();
flags: ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
0: aload_0
1: invokespecial #1 // Method java/lang/Object."<init>":()V
4: return
LineNumberTable:
line 10: 0
LocalVariableTable:
Start Length Slot Name Signature
0 5 0 this Lcom/alexchiri/bytecode/ASimpleClass;
public static void main(java.lang.String[]);
flags: ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=4, args_size=1
0: new #2 // class java/util/ArrayList
3: dup
4: invokespecial #3 // Method java/util/ArrayList."<init>":()V
7: astore_1
8: aload_1
9: ldc #4 // String Type
11: invokeinterface #5, 2 // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z
16: pop
17: aload_1
18: ldc #6 // String erasure
20: invokeinterface #5, 2 // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z
25: pop
26: aload_1
27: invokeinterface #7, 1 // InterfaceMethod java/util/List.iterator:()Ljava/util/Iterator;
32: astore_2
33: aload_2
34: invokeinterface #8, 1 // InterfaceMethod java/util/Iterator.hasNext:()Z
39: ifeq 80
42: aload_2
43: invokeinterface #9, 1 // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
48: checkcast #10 // class java/lang/String
51: astore_3
52: getstatic #11 // Field java/lang/System.out:Ljava/io/PrintStream;
55: new #12 // class java/lang/StringBuilder
58: dup
59: invokespecial #13 // Method java/lang/StringBuilder."<init>":()V
62: aload_3
63: invokevirtual #14 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
66: ldc #15 // String
68: invokevirtual #14 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
71: invokevirtual #16 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
74: invokevirtual #17 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
77: goto 33
80: return
LineNumberTable:
line 12: 0
line 13: 8
line 14: 17
line 16: 26
line 17: 52
line 18: 77
line 19: 80
LocalVariableTable:
Start Length Slot Name Signature
52 25 3 s Ljava/lang/String;
33 47 2 i$ Ljava/util/Iterator;
0 81 0 args [Ljava/lang/String;
8 73 1 strings Ljava/util/List;
LocalVariableTypeTable:
Start Length Slot Name Signature
8 73 1 strings Ljava/util/List<Ljava/lang/String;>;
StackMapTable: number_of_entries = 2
frame_type = 253 /* append */
offset_delta = 33
locals = [ class java/util/List, class java/util/Iterator ]
frame_type = 250 /* chop */
offset_delta = 46
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment