Created
August 5, 2011 12:57
-
-
Save anonymous/1127487 to your computer and use it in GitHub Desktop.
Java 7 String Switch decompiled
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Classfile Users/luciano/aestas/blog/new_java7/classes/com/aestasit/java7/StringSwitch.class | |
Last modified 05-08-2011; size 1039 bytes | |
MD5 checksum 006a09e98d65c3fb31038131d1ce7297 | |
Compiled from "StringSwitch.java" | |
public class com.aestasit.java7.StringSwitch | |
SourceFile: "StringSwitch.java" | |
minor version: 0 | |
major version: 51 | |
flags: ACC_PUBLIC, ACC_SUPER | |
Constant pool: | |
#1 = Methodref #15.#33 // java/lang/Object."<init>":()V | |
#2 = String #34 // red | |
#3 = Methodref #35.#36 // java/lang/String.hashCode:()I | |
#4 = Methodref #35.#37 // java/lang/String.equals:(Ljava/lang/Object;)Z | |
#5 = String #38 // black | |
#6 = String #39 // blue | |
#7 = String #40 // green | |
#8 = Fieldref #41.#42 // java/lang/System.out:Ljava/io/PrintStream; | |
#9 = String #43 // IS RED! | |
#10 = Methodref #44.#45 // java/io/PrintStream.println:(Ljava/lang/String;)V | |
#11 = String #46 // IS BLACK | |
#12 = String #47 // IS BLUE | |
#13 = String #48 // IS GREEN | |
#14 = Class #49 // com/aestasit/java7/StringSwitch | |
#15 = Class #50 // java/lang/Object | |
#16 = Utf8 <init> | |
#17 = Utf8 ()V | |
#18 = Utf8 Code | |
#19 = Utf8 LineNumberTable | |
#20 = Utf8 LocalVariableTable | |
#21 = Utf8 this | |
#22 = Utf8 Lcom/aestasit/java7/StringSwitch; | |
#23 = Utf8 main | |
#24 = Utf8 ([Ljava/lang/String;)V | |
#25 = Utf8 args | |
#26 = Utf8 [Ljava/lang/String; | |
#27 = Utf8 color | |
#28 = Utf8 Ljava/lang/String; | |
#29 = Utf8 StackMapTable | |
#30 = Class #51 // java/lang/String | |
#31 = Utf8 SourceFile | |
#32 = Utf8 StringSwitch.java | |
#33 = NameAndType #16:#17 // "<init>":()V | |
#34 = Utf8 red | |
#35 = Class #51 // java/lang/String | |
#36 = NameAndType #52:#53 // hashCode:()I | |
#37 = NameAndType #54:#55 // equals:(Ljava/lang/Object;)Z | |
#38 = Utf8 black | |
#39 = Utf8 blue | |
#40 = Utf8 green | |
#41 = Class #56 // java/lang/System | |
#42 = NameAndType #57:#58 // out:Ljava/io/PrintStream; | |
#43 = Utf8 IS RED! | |
#44 = Class #59 // java/io/PrintStream | |
#45 = NameAndType #60:#61 // println:(Ljava/lang/String;)V | |
#46 = Utf8 IS BLACK | |
#47 = Utf8 IS BLUE | |
#48 = Utf8 IS GREEN | |
#49 = Utf8 com/aestasit/java7/StringSwitch | |
#50 = Utf8 java/lang/Object | |
#51 = Utf8 java/lang/String | |
#52 = Utf8 hashCode | |
#53 = Utf8 ()I | |
#54 = Utf8 equals | |
#55 = Utf8 (Ljava/lang/Object;)Z | |
#56 = Utf8 java/lang/System | |
#57 = Utf8 out | |
#58 = Utf8 Ljava/io/PrintStream; | |
#59 = Utf8 java/io/PrintStream | |
#60 = Utf8 println | |
#61 = Utf8 (Ljava/lang/String;)V | |
{ | |
public com.aestasit.java7.StringSwitch(); | |
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 6: 0 | |
LocalVariableTable: | |
Start Length Slot Name Signature | |
0 5 0 this Lcom/aestasit/java7/StringSwitch; | |
public static void main(java.lang.String[]); | |
flags: ACC_PUBLIC, ACC_STATIC | |
Code: | |
stack=2, locals=4, args_size=1 | |
0: ldc #2 // String red | |
2: astore_1 | |
3: ldc #2 // String red | |
5: astore_2 | |
6: iconst_m1 | |
7: istore_3 | |
8: aload_2 | |
9: invokevirtual #3 // Method java/lang/String.hashCode:()I | |
12: lookupswitch { // 4 | |
112785: 56 | |
3027034: 84 | |
93818879: 70 | |
98619139: 98 | |
default: 109 | |
} | |
56: aload_2 | |
57: ldc #2 // String red | |
59: invokevirtual #4 // Method java/lang/String.equals:(Ljava/lang/Object;)Z | |
62: ifeq 109 | |
65: iconst_0 | |
66: istore_3 | |
67: goto 109 | |
70: aload_2 | |
71: ldc #5 // String black | |
73: invokevirtual #4 // Method java/lang/String.equals:(Ljava/lang/Object;)Z | |
76: ifeq 109 | |
79: iconst_1 | |
80: istore_3 | |
81: goto 109 | |
84: aload_2 | |
85: ldc #6 // String blue | |
87: invokevirtual #4 // Method java/lang/String.equals:(Ljava/lang/Object;)Z | |
90: ifeq 109 | |
93: iconst_2 | |
94: istore_3 | |
95: goto 109 | |
98: aload_2 | |
99: ldc #7 // String green | |
101: invokevirtual #4 // Method java/lang/String.equals:(Ljava/lang/Object;)Z | |
104: ifeq 109 | |
107: iconst_3 | |
108: istore_3 | |
109: iload_3 | |
110: tableswitch { // 0 to 3 | |
0: 140 | |
1: 151 | |
2: 162 | |
3: 173 | |
default: 181 | |
} | |
140: getstatic #8 // Field java/lang/System.out:Ljava/io/PrintStream; | |
143: ldc #9 // String IS RED! | |
145: invokevirtual #10 // Method java/io/PrintStream.println:(Ljava/lang/String;)V | |
148: goto 181 | |
151: getstatic #8 // Field java/lang/System.out:Ljava/io/PrintStream; | |
154: ldc #11 // String IS BLACK | |
156: invokevirtual #10 // Method java/io/PrintStream.println:(Ljava/lang/String;)V | |
159: goto 181 | |
162: getstatic #8 // Field java/lang/System.out:Ljava/io/PrintStream; | |
165: ldc #12 // String IS BLUE | |
167: invokevirtual #10 // Method java/io/PrintStream.println:(Ljava/lang/String;)V | |
170: goto 181 | |
173: getstatic #8 // Field java/lang/System.out:Ljava/io/PrintStream; | |
176: ldc #13 // String IS GREEN | |
178: invokevirtual #10 // Method java/io/PrintStream.println:(Ljava/lang/String;)V | |
181: return | |
LineNumberTable: | |
line 10: 0 | |
line 11: 3 | |
line 13: 140 | |
line 14: 148 | |
line 16: 151 | |
line 17: 159 | |
line 19: 162 | |
line 20: 170 | |
line 22: 173 | |
line 26: 181 | |
LocalVariableTable: | |
Start Length Slot Name Signature | |
0 182 0 args [Ljava/lang/String; | |
3 179 1 color Ljava/lang/String; | |
StackMapTable: number_of_entries = 10 | |
frame_type = 254 /* append */ | |
offset_delta = 56 | |
locals = [ class java/lang/String, class java/lang/String, int ] | |
frame_type = 13 /* same */ | |
frame_type = 13 /* same */ | |
frame_type = 13 /* same */ | |
frame_type = 10 /* same */ | |
frame_type = 30 /* same */ | |
frame_type = 10 /* same */ | |
frame_type = 10 /* same */ | |
frame_type = 10 /* same */ | |
frame_type = 249 /* chop */ | |
offset_delta = 7 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment