源码
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人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦