您现在的位置:首页 >> 基础 >> Java编程 >> 内容

JVM-绘图展现字节码执行引擎执行过程--Java学习网

时间:2016-11-7 8:17:43

  核心提示:话不多说,贴上我们将要分析的Java方法代码:public static void bb(){ String s1='a'+'b'; String s2 = 'ab'; p(s1==s2);//tru...

话不多说,贴上我们将要分析的Java方法代码:

public static void bb(){
     String s1="a"+"b";
     String s2 = "ab";
     p(s1==s2);//true
}

再贴上我们将要分析的Java方法的字节码:

public static void bb();
    flags: ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=0
0: ldc #5 // String ab 将字符串"ab"从常量池中推送至栈顶 2: astore_0 将栈顶引用类型(字符串"ab")存入第一个本地变量 3: ldc #5 // String ab 将字符串"ab"从常量池中推送至栈顶 5: astore_1 将栈顶引用类型(字符串"ab")存入第一个本地变量 6: aload_0 将第一个本地变量("ab")推送至栈顶 7: aload_1 将第二个本地变量("ab")推送至栈顶 8: if_acmpne 15 比较栈顶两引用类型数值,结果不同跳转(这里当然相同啦) 11: iconst_1 将int类型 1 推送至栈顶 12: goto 16 无条件跳转到16字节码偏移量 15: iconst_0 16: invokestatic #10 // Method java/lang/Boolean.valueO 调用静态方法Boolean.valueOf();并将返回的Boolean类型的true压入栈顶 f:(Z)Ljava/lang/Boolean; 19: invokestatic #11 // Method p:(Ljava/lang/Object;)V 调用静态方法p(true);输出true 22: return 从当前方法返回void

由Code:下面的第一行,我们得知,操作数栈深度为2,局部变量空间为2个Slot,参数个数为0。

 

如果你把所有的图片复制下来,会看到动态般执行的效果。

-------------------------------------------------------------------绘图分割线----------------------------------------------------------

   

   

 

   

  

 

  

 

 

 

  

Java免费学习   Java自学网 http://www.javalearns.com

关注微信号:javalearns   随时随地学Java

或扫一扫

随时随地学Java

作者:不详 来源:网络
    你是从哪里知道本网站的?
  • 网友介绍的
  • 百度搜索的
  • Google搜索的
  • 其它搜索过来的
  • 网址输错了进来的
  • 太忙了不记得了
共有评论 0相关评论
发表我的评论
  • 大名:
  • 内容:
  • java学习网(www.javalearns.com) © 2014 版权所有 All Rights Reserved.
  • Email:javalearns@163.com 站长QQ:1356121699 晋ICP备14003680号-3
  • java学习网部分内容来自网络或网友发布,如侵犯了您利益,请发邮件至:javalearns@126.com,我们尽快处理!
  • Java学习网
  • 网站统计
  • 晋公网安备 14042902000001号