美文网首页
一个java 比较迷惑的问题

一个java 比较迷惑的问题

作者: onedam | 来源:发表于2021-03-15 14:22 被阅读0次
 public static void main(String[] args){
        int c = 2;
//        c=c++; //这样赋值后,c仍然是2
        c++;  //这样后 就是3
        System.out.println(c);
    }

反汇编bytecode

    /* c=c++
 0 iconst_2
 1 istore_1
 2 iload_1  ;此处加载到栈顶的就是 2
 3 iinc 1 by 1 ;这里没有操作栈顶. 直接把loca变量加了1  此时局部变量是3了.
 6 istore_1 ;这里被覆盖成栈顶的2了..
 7 getstatic #4 <java/lang/System.out>
10 iload_1 ;传参 a
11 invokevirtual #5 <java/io/PrintStream.println>
14 return
    * */
/* 直接c++
 0 iconst_2
 1 istore_1
 2 iinc 1 by 1
 5 getstatic #4 <java/lang/System.out>
 8 iload_1 ;传参 a
 9 invokevirtual #5 <java/io/PrintStream.println>
12 return
    * */

相关文章

网友评论

      本文标题:一个java 比较迷惑的问题

      本文链接:https://www.haomeiwen.com/subject/yuqkcltx.html