首页 > 其他 > 详细

jvm字节码指令

时间:2021-06-18 09:22:23      阅读:20      评论:0      收藏:0      [点我收藏+]

demo:

public class T1 {
    volatile int n = 0;
    public void add() {
        n++;
    }
}
Compiled from "T1.java"
public class com.shishi.jmm.T1 {
  volatile int n;

  public com.shishi.jmm.T1();
    Code:
       0: aload_0
       1: invokespecial #1                  // Method java/lang/Object."<init>":()V
       4: aload_0
       5: iconst_2
       6: putfield      #2                  // Field n:I
       9: return

  public void add();
    Code:
       0: aload_0
       1: dup
       2: getfield      #2                  // Field n:I
       5: iconst_1
       6: iadd
       7: putfield      #2                  // Field n:I
      10: return

  public static void main(java.lang.String[]);
    Code:
       0: return
}

https://www.cnblogs.com/noteless/p/9556928.html, 参考这个指令集对照,也可去Oracle获取这个指令集对照表

分析add方法:

即: 

从局部变量0中装载引用类型值,压栈,获取值,将int型(1)推送至栈顶,加法指令,设置值,返回

jvm字节码指令

原文:https://www.cnblogs.com/dayanjing/p/14897912.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!