加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Mac终端输入javap报错

发布时间:2020-12-14 06:38:15 所属栏目:Java 来源:网络整理
导读:":()V #2 = Class #49 // java/util/Stack #3 = Methodref #2.#48 // java/util/Stack." ":()V #4 = Fieldref #19.#50 // niukeWeb/evalRPN.stack:Ljava/util/Stack; #5 = Fieldref #19.#51 // niukeWeb/evalRPN.length:I #6 = Methodref #10.#52 // java/la

":()V
   #2 = Class              #49            // java/util/Stack
   #3 = Methodref          #2.#48         // java/util/Stack."":()V
   #4 = Fieldref           #19.#50        // niukeWeb/evalRPN.stack:Ljava/util/Stack;
   #5 = Fieldref           #19.#51        // niukeWeb/evalRPN.length:I
   #6 = Methodref          #10.#52        // java/lang/Integer.parseInt:(Ljava/lang/String;)I
   #7 = String             #53            // +
   #8 = Methodref          #21.#54        // java/lang/String.equals:(Ljava/lang/Object;)Z
   #9 = Methodref          #2.#55         // java/util/Stack.pop:()Ljava/lang/Object;
  #10 = Class              #56            // java/lang/Integer
  #11 = Methodref          #10.#57        // java/lang/Integer.intValue:()I
  #12 = Fieldref           #19.#58        // niukeWeb/evalRPN.result:I
  #13 = Methodref          #10.#59        // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
  #14 = Methodref          #2.#60         // java/util/Stack.push:(Ljava/lang/Object;)Ljava/lang/Object;
  #15 = String             #61            // -
  #16 = String             #62            // *
  #17 = String             #63            // /
  #18 = Methodref          #21.#64        // java/lang/String.trim:()Ljava/lang/String;
  #19 = Class              #65            // niukeWeb/evalRPN
  #20 = Methodref          #19.#48        // niukeWeb/evalRPN."":()V
  #21 = Class              #66            // java/lang/String
  #22 = String             #67            // 2
  #23 = String             #68            // 1
  #24 = String             #69            // 3
  #25 = Methodref          #19.#70        // niukeWeb/evalRPN.evalRPN:([Ljava/lang/String;)I
  #26 = Fieldref           #71.#72        // java/lang/System.out:Ljava/io/PrintStream;
  #27 = Methodref          #73.#74        // java/io/PrintStream.println:(I)V
  #28 = String             #75            // 0
  #29 = Class              #76            // java/lang/Object
  #30 = Utf8               stack
  #31 = Utf8               Ljava/util/Stack;
  #32 = Utf8               Signature
  #33 = Utf8               Ljava/util/Stack;
  #34 = Utf8               length
  #35 = Utf8               I
  #36 = Utf8               result
  #37 = Utf8               
  #38 = Utf8               ()V
  #39 = Utf8               Code
  #40 = Utf8               LineNumberTable
  #41 = Utf8               evalRPN
  #42 = Utf8               ([Ljava/lang/String;)I
  #43 = Utf8               StackMapTable
  #44 = Utf8               main
  #45 = Utf8               ([Ljava/lang/String;)V
  #46 = Utf8               SourceFile
  #47 = Utf8               evalRPN.java
  #48 = NameAndType        #37:#38        // "":()V
  #49 = Utf8               java/util/Stack
  #50 = NameAndType        #30:#31        // stack:Ljava/util/Stack;
  #51 = NameAndType        #34:#35        // length:I
  #52 = NameAndType        #77:#78        // parseInt:(Ljava/lang/String;)I
  #53 = Utf8               +
  #54 = NameAndType        #79:#80        // equals:(Ljava/lang/Object;)Z
  #55 = NameAndType        #81:#82        // pop:()Ljava/lang/Object;
  #56 = Utf8               java/lang/Integer
  #57 = NameAndType        #83:#84        // intValue:()I
  #58 = NameAndType        #36:#35        // result:I
  #59 = NameAndType        #85:#86        // valueOf:(I)Ljava/lang/Integer;
  #60 = NameAndType        #87:#88        // push:(Ljava/lang/Object;)Ljava/lang/Object;
  #61 = Utf8               -
  #62 = Utf8               *
  #63 = Utf8               /
  #64 = NameAndType        #89:#90        // trim:()Ljava/lang/String;
  #65 = Utf8               niukeWeb/evalRPN
  #66 = Utf8               java/lang/String
  #67 = Utf8               2
  #68 = Utf8               1
  #69 = Utf8               3
  #70 = NameAndType        #41:#42        // evalRPN:([Ljava/lang/String;)I
  #71 = Class              #91            // java/lang/System
  #72 = NameAndType        #92:#93        // out:Ljava/io/PrintStream;
  #73 = Class              #94            // java/io/PrintStream
  #74 = NameAndType        #95:#96        // println:(I)V
  #75 = Utf8               0
  #76 = Utf8               java/lang/Object
  #77 = Utf8               parseInt
  #78 = Utf8               (Ljava/lang/String;)I
  #79 = Utf8               equals
  #80 = Utf8               (Ljava/lang/Object;)Z
  #81 = Utf8               pop
  #82 = Utf8               ()Ljava/lang/Object;
  #83 = Utf8               intValue
  #84 = Utf8               ()I
  #85 = Utf8               valueOf
  #86 = Utf8               (I)Ljava/lang/Integer;
  #87 = Utf8               push
  #88 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;
  #89 = Utf8               trim
  #90 = Utf8               ()Ljava/lang/String;
  #91 = Utf8               java/lang/System
  #92 = Utf8               out
  #93 = Utf8               Ljava/io/PrintStream;
  #94 = Utf8               java/io/PrintStream
  #95 = Utf8               println
  #96 = Utf8               (I)V
{
  java.util.Stack stack;
    descriptor: Ljava/util/Stack;
    flags:
    Signature: #33                          // Ljava/util/Stack;

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$

到此,查看.class字节码的准备工作就做完了,通过分析字节码信息来分析.class文件中常量等信息。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读