前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一些使用javap反编译出来的结果分析

一些使用javap反编译出来的结果分析

作者头像
Jerry Wang
发布2019-05-31 11:13:34
8620
发布2019-05-31 11:13:34
举报

版权声明:本文为博主汪子熙原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1439829

Compiled from “stringTest.java”

public class stringTest.stringTest {

public stringTest.stringTest();

Code:

0: aload_0

1: invokespecial #8 // Method java/lang/Object.""?)V

4: return

public static void main(java.lang.String[]);

Code:

//Jerry: ldc 把常量池中的项压入栈

0: ldc #16 // String Jerry

//Jerry: astore_1 将引用类型或returnAddress类型值存入局部变量1

2: astore_1

3: ldc #18 // String JS

5: astore_2

6: ldc #20 // String Developer

8: astore_3

//Jerry: 创建一个新对象

9: new #22 // class java/lang/StringBuilder

12: dup

//Jerry: 从局部变量1中装载引用类型值

13: aload_1

14: invokestatic #24 // Method java/lang/String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;

代码语言:javascript
复制
  //Jerry:根据编译时类型来调用实例方法 
  17: invokespecial #30                 // Method java/lang/StringBuilder."<init>":(Ljava/lang/String;)V

  20: aload_2       
  21: invokevirtual #33                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
  24: aload_3       
  25: invokevirtual #33                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
  
  28: invokevirtual #37                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
  31: astore        4
  33: getstatic     #41                 // Field java/lang/System.out:Ljava/io/PrintStream;
  36: aload         4
  38: invokevirtual #47                 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
  41: return        

}

Compiled from “stringTestLoop.java”

public class stringTest.stringTestLoop {

public stringTest.stringTestLoop();

Code:

0: aload_0

1: invokespecial #8 // Method java/lang/Object.""?)V

4: return

public static void main(java.lang.String[]);

Code:

0: ldc #16 // String

2: astore_1

3: iconst_3

4: anewarray #18 // class java/lang/String

7: dup

8: iconst_0

9: ldc #20 // String 1

11: aastore

12: dup

13: iconst_1

14: ldc #22 // String 2

16: aastore

17: dup

18: iconst_2

19: ldc #24 // String 3

21: aastore

22: astore_2

23: iconst_0

24: istore_3

25: goto 52

28: new #26 // class java/lang/StringBuilder

31: dup

32: aload_1

33: invokestatic #28 // Method java/lang/String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;

36: invokespecial #32 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V

39: aload_2

40: iload_3

41: aaload

42: invokevirtual #35 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;

45: invokevirtual #39 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;

48: astore_1

49: iinc 3, 1

52: iload_3

53: aload_2

54: arraylength

55: if_icmplt 28

58: getstatic #43 // Field java/lang/System.out:Ljava/io/PrintStream;

61: aload_1

62: invokevirtual #49 // Method java/io/PrintStream.println:(Ljava/lang/String;)V

65: return

}

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年02月01日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档