SLy

永远年轻,永远憧憬,永远热爱。


  • 首页

  • 归档

  • 影集

  • 关于

  • 搜索
Thread Spring JAVA JVM 游记 计算机基础 MySQL 排序算法 PMP 情感 摄影 博客

i++与++i的区别

发表于 2021-01-07 | 分类于 JVM | 0 | 阅读次数 1032

关于 i++ 与 ++i 的区别

关于JVM的运行时数据区图

JVM运行时数据区

汇编指令

这里的栈指的是操作数栈

public void test1();
    Code:
       0: iconst_0                // 将常数0压栈
       1: istore_1                // 将0弹出赋值给局部变量表下标值为1的数[i](i = 0)
       2: iload_1                 // 将局部变量表下标值为1的数[i]里的值拿出来压栈,也就是将0压栈
       3: iinc          1, 1      // 将局部变量表下标值为1的数[i]里的值 + 1
       6: istore_2                // 将0弹出赋值给局部变量表下标值为2的数[j](j = 0)
       7: return                  // 返回(此时:i = 1,j = 0)
 
public void test2();
    Code:
       0: iconst_0                // 将常数0压栈
       1: istore_1                // 将0弹出赋值给局部变量表下标值为1的数[i](i = 0)
       2: iinc          1, 1      // 将局部变量表下标值为1的数[i]里的值 + 1
       5: iload_1                 // 将局部变量表下标值为1的数[i]里的值拿出来压栈,也就是将1压栈
       6: istore_2                // 将1弹出赋值给局部变量表下标值为2的数[j](j = 1)
       7: return                  // 返回(此时:i = 1,j = 1)

查看汇编指令

clipboard

clipboard2

clipboard3

clipboard4

  • 本文作者: SLy
  • 本文链接: https://sly.plus/archives/i
  • 版权声明: 本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0 许可协议。转载请注明出处!
# Thread # Spring # JAVA # JVM # 游记 # 计算机基础 # MySQL # 排序算法 # PMP # 情感 # 摄影 # 博客
再见,2020
Java基础
  • 文章目录
  • 站点概览
SLy

SLy

永远年轻,永远憧憬,永远热爱。

37 日志
12 分类
12 标签
RSS
Github E-mail
Creative Commons
© 2020 — 2025 SLy