;
int length;
descriptor: I
flags:
int result;
descriptor: I
flags:
public niukeWeb.evalRPN();
descriptor: ()V
flags: ACC_PUBLIC
Code:
stack=3,locals=1,args_size=1
0: aload_0
1: invokespecial #1 // Method java/lang/Object."":()V
4: aload_0
5: new #2 // class java/util/Stack
8: dup
9: invokespecial #3 // Method java/util/Stack."":()V
12: putfield #4 // Field stack:Ljava/util/Stack;
15: return
LineNumberTable:
line 11: 0
line 12: 4
int evalRPN(java.lang.String[]);
descriptor: ([Ljava/lang/String;)I
flags:
Code:
stack=3,locals=5,args_size=2
0: aload_0
1: aload_1
2: arraylength
3: putfield #5 // Field length:I
6: aload_0
7: getfield #5 // Field length:I
10: iconst_1
11: if_icmpne 21
14: aload_1
15: iconst_0
16: aaload
17: invokestatic #6 // Method java/lang/Integer.parseInt:(Ljava/lang/String;)I
20: ireturn
21: iconst_0
22: istore_2
23: iload_2
24: aload_0
25: getfield #5 // Field length:I
28: if_icmpge 321
31: aload_1
32: iload_2
33: aaload
34: ldc #7 // String +
36: invokevirtual #8 // Method java/lang/String.equals:(Ljava/lang/Object;)Z
39: ifeq 97
42: aload_0
43: getfield #4 // Field stack:Ljava/util/Stack;
46: invokevirtual #9 // Method java/util/Stack.pop:()Ljava/lang/Object;
49: checkcast #10 // class java/lang/Integer
52: invokevirtual #11 // Method java/lang/Integer.intValue:()I
55: istore_3
56: aload_0
57: getfield #4 // Field stack:Ljava/util/Stack;
60: invokevirtual #9 // Method java/util/Stack.pop:()Ljava/lang/Object;
63: checkcast #10 // class java/lang/Integer
66: invokevirtual #11 // Method java/lang/Integer.intValue:()I
69: istore 4
71: aload_0
72: iload_3
73: iload 4
75: iadd
76: putfield #12 // Field result:I
79: aload_0
80: getfield #4 // Field stack:Ljava/util/Stack;
83: aload_0
84: getfield #12 // Field result:I
87: invokestatic #13 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
90: invokevirtual #14 // Method java/util/Stack.push:(Ljava/lang/Object;)Ljava/lang/Object;
93: pop
94: goto 315
97: aload_1
98: iload_2
99: aaload
100: ldc #15 // String -
102: invokevirtual #8 // Method java/lang/String.equals:(Ljava/lang/Object;)Z
105: ifeq 163
108: aload_0
109: getfield #4 // Field stack:Ljava/util/Stack;
112: invokevirtual #9 // Method java/util/Stack.pop:()Ljava/lang/Object;
115: checkcast #10 // class java/lang/Integer
118: invokevirtual #11 // Method java/lang/Integer.intValue:()I
121: istore_3
122: aload_0
123: getfield #4 // Field stack:Ljava/util/Stack;
126: invokevirtual #9 // Method java/util/Stack.pop:()Ljava/lang/Object;
129: checkcast #10 // class java/lang/Integer
132: invokevirtual #11 // Method java/lang/Integer.intValue:()I
135: istore 4
137: aload_0
138: iload 4
140: iload_3
141: isub
142: putfield #12 // Field result:I
145: aload_0
146: getfield #4 // Field stack:Ljava/util/Stack;
149: aload_0
150: getfield #12 // Field result:I
153: invokestatic #13 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
156: invokevirtual #14 // Method java/util/Stack.push:(Ljava/lang/Object;)Ljava/lang/Object;
159: pop
160: goto 315
163: aload_1
164: iload_2
165: aaload
166: ldc #16 // String
168: invokevirtual #8 // Method java/lang/String.equals:(Ljava/lang/Object;)Z
171: ifeq 229
174: aload_0
175: getfield #4 // Field stack:Ljava/util/Stack;
178: invokevirtual #9 // Method java/util/Stack.pop:()Ljava/lang/Object;
181: checkcast #10 // class java/lang/Integer
184: invokevirtual #11 // Method java/lang/Integer.intValue:()I
187: istore_3
188: aload_0
189: getfield #4 // Field stack:Ljava/util/Stack;
192: invokevirtual #9 // Method java/util/Stack.pop:()Ljava/lang/Object;
195: checkcast #10 // class java/lang/Integer
198: invokevirtual #11 // Method java/lang/Integer.intValue:()I
201: istore 4
203: aload_0
204: iload_3
205: iload 4
207: imul
208: putfield #12 // Field result:I
211: aload_0
212: getfield #4 // Field stack:Ljava/util/Stack;
215: aload_0
216: getfield #12 // Field result:I
219: invokestatic #13 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
222: invokevirtual #14 // Method java/util/Stack.push:(Ljava/lang/Object;)Ljava/lang/Object;
225: pop
226: goto 315
229: aload_1
230: iload_2
231: aaload
232: ldc #17 // String /
234: invokevirtual #8 // Method java/lang/String.equals:(Ljava/lang/Object;)Z
237: ifeq 295
240: aload_0
241: getfield #4 // Field stack:Ljava/util/Stack;
244: invokevirtual #9 // Method java/util/Stack.pop:()Ljava/lang/Object;
247: checkcast #10 // class java/lang/Integer
250: invokevirtual #11 // Method java/lang/Integer.intValue:()I
253: istore_3
254: aload_0
255: getfield #4 // Field stack:Ljava/util/Stack;
258: invokevirtual #9 // Method java/util/Stack.pop:()Ljava/lang/Object;
261: checkcast #10 // class java/lang/Integer
264: invokevirtual #11 // Method java/lang/Integer.intValue:()I
267: istore 4
269: aload_0
270: iload 4
272: iload_3
273: idiv
274: putfield #12 // Field result:I
277: aload_0
278: getfield #4 // Field stack:Ljava/util/Stack;
281: aload_0
282: getfield #12 // Field result:I
285: invokestatic #13 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
288: invokevirtual #14 // Method java/util/Stack.push:(Ljava/lang/Object;)Ljava/lang/Object;
291: pop
292: goto 315
295: aload_0
296: getfield #4 // Field stack:Ljava/util/Stack;
299: aload_1
300: iload_2
301: aaload
302: invokevirtual #18 // Method java/lang/String.trim:()Ljava/lang/String;
305: invokestatic #6 // Method java/lang/Integer.parseInt:(Ljava/lang/String;)I
308: invokestatic #13 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
311: invokevirtual #14 // Method java/util/Stack.push:(Ljava/lang/Object;)Ljava/lang/Object;
314: pop
315: iinc 2,1
318: goto 23
321: aload_0
322: getfield #12 // Field result:I
325: ireturn
LineNumberTable:
line 16: 0
line 17: 6
line 19: 21
line 20: 31
line 21: 42
line 22: 56
line 23: 71
line 24: 79
line 25: 94
line 26: 108
line 27: 122
line 28: 137
line 29: 145
line 30: 160
line 31: 174
line 32: 188
line 33: 203
line 34: 211
line 35: 226
line 36: 240
line 37: 254
line 38: 269
line 39: 277
line 40: 292
line 42: 295
line 19: 315
line 45: 321
StackMapTable: number_of_entries = 8
frame_type = 21 / same /
frame_type = 252 / append /
offset_delta = 1
locals = [ int ]
frame_type = 251 / same_frame_extended /
offset_delta = 73
frame_type = 251 / same_frame_extended /
offset_delta = 65
frame_type = 251 / same_frame_extended /
offset_delta = 65
frame_type = 251 / same_frame_extended /
offset_delta = 65
frame_type = 19 / same /
frame_type = 250 / chop */
offset_delta = 5
public static void main(java.lang.String[]);
descriptor: ([Ljava/lang/String;)V
flags: ACC_PUBLIC,ACC_STATIC
Code:
stack=4,locals=8,args_size=1
0: new #19 // class niukeWeb/evalRPN
3: dup
4: invokespecial #20 // Method "":()V
7: astore_1
8: iconst_5
9: anewarray #21 // class java/lang/String
12: dup
13: iconst_0
14: ldc #22 // String 2
16: aastore
17: dup
18: iconst_1
19: ldc #23 // String 1
21: aastore
22: dup
23: iconst_2
24: ldc #7 // String +
26: aastore
27: dup
28: iconst_3
29: ldc #24 // String 3
31: aastore
32: dup
33: iconst_4
34: ldc #16 // String *
36: aastore
37: astore_2
38: aload_1
39: aload_2
40: invokevirtual #25 // Method evalRPN:([Ljava/lang/String;)I
43: istore_3
44: getstatic #26 // Field java/lang/System.out:Ljava/io/PrintStream;
47: iload_3
48: invokevirtual #27 // Method java/io/PrintStream.println:(I)V
51: iconst_1
52: anewarray #21 // class java/lang/String
55: dup
56: iconst_0
57: ldc #22 // String 2
59: aastore
60: astore 4
62: aload_1
63: aload 4
65: invokevirtual #25 // Method evalRPN:([Ljava/lang/String;)I
68: istore 5
70: getstatic #26 // Field java/lang/System.out:Ljava/io/PrintStream;
73: iload 5
75: invokevirtual #27 // Method java/io/PrintStream.println:(I)V
78: iconst_3
79: anewarray #21 // class java/lang/String
82: dup
83: iconst_0
84: ldc #28 // String 0
86: aastore
87: dup
88: iconst_1
89: ldc #24 // String 3
91: aastore
92: dup
93: iconst_2
94: ldc #17 // String /
96: aastore
97: astore 6
99: aload_1
100: aload 6
102: invokevirtual #25 // Method evalRPN:([Ljava/lang/String;)I
105: istore 7
107: getstatic #26 // Field java/lang/System.out:Ljava/io/PrintStream;
110: iload 7
112: invokevirtual #27 // Method java/io/PrintStream.println:(I)V
115: return
LineNumberTable:
line 49: 0
line 50: 8
line 51: 38
line 52: 44
line 54: 51
line 55: 62
line 56: 70
line 58: 78
line 59: 99
line 60: 107
line 61: 115
}
SourceFile: "evalRPN.java"
cxhdeMacBook-Air:niukeweb caoxiaohong$