Created
December 29, 2012 20:44
-
-
Save vaskoz/4409247 to your computer and use it in GitHub Desktop.
Bytecode of 2 methods in Switch.java
This file contains hidden or 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
public java.lang.String switchTest(java.lang.String); | |
Code: | |
0: aconst_null | |
1: astore_2 | |
2: aload_1 | |
3: astore_3 | |
4: iconst_m1 | |
5: istore 4 | |
7: aload_3 | |
8: invokevirtual #2 // Method java/lang/String.hashCode:()I | |
11: lookupswitch { // 3 | |
-681733281: 74 | |
97299: 59 | |
101574: 44 | |
default: 86 | |
} | |
44: aload_3 | |
45: ldc #3 // String foo | |
47: invokevirtual #4 // Method java/lang/String.equals:(Ljava/lang/Object;)Z | |
50: ifeq 86 | |
53: iconst_0 | |
54: istore 4 | |
56: goto 86 | |
59: aload_3 | |
60: ldc #5 // String bar | |
62: invokevirtual #4 // Method java/lang/String.equals:(Ljava/lang/Object;)Z | |
65: ifeq 86 | |
68: iconst_1 | |
69: istore 4 | |
71: goto 86 | |
74: aload_3 | |
75: ldc #6 // String foo:bar | |
77: invokevirtual #4 // Method java/lang/String.equals:(Ljava/lang/Object;)Z | |
80: ifeq 86 | |
83: iconst_2 | |
84: istore 4 | |
86: iload 4 | |
88: tableswitch { // 0 to 2 | |
0: 116 | |
1: 122 | |
2: 128 | |
default: 134 | |
} | |
116: ldc #7 // String foo1 | |
118: astore_2 | |
119: goto 137 | |
122: ldc #8 // String bar1 | |
124: astore_2 | |
125: goto 137 | |
128: ldc #9 // String foo1:bar1 | |
130: astore_2 | |
131: goto 137 | |
134: ldc #10 // String no match | |
136: astore_2 | |
137: aload_2 | |
138: areturn | |
public java.lang.String ifThenElseTest(java.lang.String); | |
Code: | |
0: aconst_null | |
1: astore_2 | |
2: ldc #3 // String foo | |
4: aload_1 | |
5: invokevirtual #4 // Method java/lang/String.equals:(Ljava/lang/Object;)Z | |
8: ifeq 17 | |
11: ldc #7 // String foo1 | |
13: astore_2 | |
14: goto 50 | |
17: ldc #5 // String bar | |
19: aload_1 | |
20: invokevirtual #4 // Method java/lang/String.equals:(Ljava/lang/Object;)Z | |
23: ifeq 32 | |
26: ldc #8 // String bar1 | |
28: astore_2 | |
29: goto 50 | |
32: ldc #9 // String foo1:bar1 | |
34: aload_1 | |
35: invokevirtual #4 // Method java/lang/String.equals:(Ljava/lang/Object;)Z | |
38: ifeq 47 | |
41: ldc #9 // String foo1:bar1 | |
43: astore_2 | |
44: goto 50 | |
47: ldc #10 // String no match | |
49: astore_2 | |
50: aload_2 | |
51: areturn | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment