通过字节码分析i++ 与 ++i

简介: 通过字节码分析i++ 与 ++i

一 字节码

字节码是java跨平台的利器,无论你写成何种方法,最终java来执行的都是字节码,同时字节码现在也变得越来越被学习者看中,例如多线程,例如解释一些效率的问题。

二 查看字节码

jvm命令:javap -c +执行的class文件

  1. i++的执行
  • 代码

    int a =0;
    int i=0;
    a = i++;

  • 字节码

    4: iload_2
    5: iinc 2, 1
    8: istore_1

  1. ++i的执行
  • 代码

    int a =0;
    int i=0;
    a = ++i;

  • 字节码

    ++i 的字节码执行
    4: iinc 2, 1
    7: iload_2
    8: istore_1

二 字节码执行分析

  1. 解释i++

    先将局部变量表中的第二个抽屉中的数据 放入栈,然后再对局部变量表的第二个抽屉进行+1,最后将栈中的数据放入到局部变量表;结果就是0,而区别就是我们最后读取的是栈中的数据,而+1缺失在局部表量表所以才是0;

  2. 解释++i

    首先iinc是对局部变量表中的数据进行 +1操作。那后面的 数值(2,1)是什么意思呢,先说下局部表量表,这个是jvm虚拟机栈中的一个空间,存储的是参数和局部变量,我们可以理解他为一个中药柜,里面有很多的抽屉,(2,1)就是向第二个抽屉中的数据+1

    然后iload_2 就是将局部变量表中的第二个变量,放入到操作栈中,也就是入栈,这时栈中的数据就是1了,然后执行istore_1就是将栈顶的数据赋值给局部变量,这时局部变量就是1了

相关文章
|
存储 弹性计算 固态存储
阿里云服务器ECS共享型和独享区别选择(看这一篇就够了)
阿里云服务器ECS共享型和计算型、通用型有什么区别?什么是共享型云服务器?什么是独享型云服务器?性能区别大吗?如何选择?
4477 0
阿里云服务器ECS共享型和独享区别选择(看这一篇就够了)
|
9月前
|
弹性计算 负载均衡 Cloud Native
零成本用阿里云负载均衡应用型ALB:2026每月750个小时15LCU
阿里云应用型负载均衡ALB免费试用:每月750小时实例使用时长、15LCU及1500小时EIP,限新用户领取1次。适用于互联网、音视频及云原生应用,支持高并发与弹性伸缩。通过阿里云免费中心申请,自动创建ALB与EIP实例,推荐搭配云数据传输CDT使用。
|
9月前
|
人工智能 搜索推荐 物联网
别再只当用户了!手把手教你打造易模型,打造个性化AI助手
零基础实现个性化AI助手微调。无需高端显卡,浏览器即可完成训练,让AI真正“认识你”。
433 0
|
Linux 编译器 开发工具
提升CentOS 7中的gcc/G++版本
至此,你已经成功在CentOS 7中升级了gcc/G++版本。从现在开始,在终端中运行 `gcc`或 `g++`时,将会使用新版本的编译器。
1984 21
|
人工智能 JavaScript 前端开发
【HarmonyOS NEXT+AI】问答04:仓颉编程语言适合毕业设计吗?
本文探讨了仓颉编程语言是否适合用于毕业设计的问题。仓颉编程语言虽小众,但具备独特性与创新性,可开发鸿蒙应用及AI大模型应用,具有前瞻性。其语法与主流语言类似,易于上手,且有丰富课程支持学习。若时间充裕并结合相关主题,使用仓颉语言能让毕业设计在答辩中脱颖而出。同时,文章还介绍了毕业设计答辩的时间安排,帮助学生合理规划。
676 3
【HarmonyOS NEXT+AI】问答04:仓颉编程语言适合毕业设计吗?
|
人工智能 搜索推荐
PersonaCraft:首尔国立大学推出的单参考图像生成多身份全身图像技术
PersonaCraft是由首尔国立大学推出的创新技术,能够从单一参考图像生成多个人物的逼真全身图像。该技术结合了扩散模型和3D人类建模,有效处理人物间的遮挡问题,并支持用户自定义身体形状调整,为多人图像合成树立了新标准。
650 9
PersonaCraft:首尔国立大学推出的单参考图像生成多身份全身图像技术
|
机器学习/深度学习 人工智能 自然语言处理
智能语音识别技术的现状与未来发展趋势####
本文旨在探讨智能语音识别技术的发展历程、当前主要技术特点、面临的挑战以及未来的发展趋势。通过综述该领域的最新研究进展和应用实例,本文为读者提供了一个关于智能语音识别技术的全面概览,并展望了其在未来可能的发展方向。 ####
|
存储 人工智能 缓存
官宣开源 阿里云与清华大学共建AI大模型推理项目Mooncake
近日,清华大学和研究组织9#AISoft,联合以阿里云为代表的多家企业和研究机构,正式开源大模型资源池化项目 Mooncake。

热门文章

最新文章