亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Java i++ 和 ++i 區別

標簽:
Java

源码

      int k = 1;
      int j = 1;
      int i = 1;
      System.out.println(i++);
      System.out.println(++i);

字节码

   L0
    LINENUMBER 8 L0
    ICONST_1
    ISTORE 1
   L1
    LINENUMBER 9 L1
    ICONST_1
    ISTORE 2
   L2
    LINENUMBER 10 L2
    ICONST_1
    ISTORE 3
   L3
    LINENUMBER 11 L3
    GETSTATIC java/lang/System.out : Ljava/io/PrintStream;
    ILOAD 3
    IINC 3 1
    INVOKEVIRTUAL java/io/PrintStream.println (I)V
   L4
    LINENUMBER 12 L4
    GETSTATIC java/lang/System.out : Ljava/io/PrintStream;
    IINC 3 1
    ILOAD 3
    INVOKEVIRTUAL java/io/PrintStream.println (I)V

说明:
反编译采用ASM插件
内容截取自以上字节码 !!!
#号后面的内容是注释 !!!

L0
    # 源码行号
    LINENUMBER 8 L0
    # ICONST_1:将一个(int类型)常量加载到操作数栈
    ICONST_1
    # ISTORE:将一个数值从操作数栈存储到局部变量表
    ISTORE 1

L3
    # 源码行号
    LINENUMBER 11 L3
    # GETSTATIC:获取静态字段的值 (访问类字段和实例字段的指令)
    GETSTATIC java/lang/System.out : Ljava/io/PrintStream;
    # ILOAD:将一个指定(int类型)局部变量加载到操作栈
    ILOAD 3
    # IINC:局部变量自增指令
    IINC 3 1
    # INVOKEVIRTUAL:用于调用对象的实例方法 (运行时方法绑定调用方法)
    INVOKEVIRTUAL java/io/PrintStream.println (I)V
點擊查看更多內容
1人點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
JAVA開發工程師
手記
粉絲
0
獲贊與收藏
8

關注作者,訂閱最新文章

閱讀免費教程

感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消