源码
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人點贊
評論
評論
共同學習,寫下你的評論
評論加載中...
作者其他優質文章
正在加載中
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦