使用javap命令解析出来的a=a++过程的字节码(int a=1; a=a++):

0: iconst_1  将数值1压入栈顶
1: istore_1  栈顶值1存入局部变量表的第一个slot中
2: iload_1   将第1个slot所存的变量放入栈顶
3: iinc 1, 1  将第1个slot所存的变量自加1
6: istore_1 将栈顶数据抛出,写入局部变量表的第1个slot中

看到此处,应该恍然大悟,问题就出在iinc这条指令上,它操作的是将局部变量表中的值加一,而非是操作数栈中的变量值加一。

转载于:https://www.cnblogs.com/dyj-blog/p/9313710.html

a=a++问题引发的思考相关推荐

  1. JAVA-OPTS引发的思考

    JAVA-OPTS引发的思考 我们在性能测试过程中,经常要修改应用的JAVA-OPTS参数.修改这些参数,不单单是修改这些数字,本着知其所以然的态度,我们要知道这些参数背后的意义. 常见的JAVA-O ...

  2. 一个小程序引发的思考

    既然是一个小程序引发的思考,那么我们就先看看这个小程序,看看他有何神奇之处: namespace ConsoleApplication1 {class Program{static void Main ...

  3. 由“递归遍历二叉树”引发的思考

    由"递归遍历二叉树"引发的思考 递归的用法我感觉自己已经掌握了,可是今天在递归遍历二叉树时,它又迷一样令我费解.我本人在算法这一块很薄弱,所以想把这个问题发出来,希望有大神能够为我 ...

  4. 由一行文本输入框引发的思考

      文章是关于React组件之表单单行文本输入框的一些思考.可能大家第一反应都是,不就是一行<input/>嘛,没什么特别的吧?如果说到输入框的值的话,可能圈子里上大多数封装好的React ...

  5. 由熊猫烧香引发的思考

    由熊猫烧香引发的思考 早期的计算机病毒诞生,作者是以技术炫耀为主,编写这类病毒需要更深入的了解系统及网络技术,开发功底也要更深厚.现阶段,一个合格的程序员,制造出具备破坏性的代码,已经不怎么难.甚至, ...

  6. Spring之LoadTimeWeaver——一个需求引发的思考---转

    原文地址:http://www.myexception.cn/software-architecture-design/602651.html Spring之LoadTimeWeaver--一个需求引 ...

  7. 由SecureCRT引发的思考和学习

    由SecureCRT引发的思考和学习 http://mp.weixin.qq.com/s?__biz=MzAxOTAzMDEwMA==&mid=2652500597&idx=1& ...

  8. C语言中递归什么时候能够省略return引发的思考:通过内联汇编解读C语言函数return的本质...

    C语言中递归什么时候能够省略return引发的思考:通过内联汇编解读C语言函数return的本质 事情的经过是这种,博主在用C写一个简单的业务时使用递归,因为粗心而忘了写return.结果发现返回的结 ...

  9. 由「Metaspace容量不足触发CMS GC」从而引发的思考

    转载自  由「Metaspace容量不足触发CMS GC」从而引发的思考 某天早上,毛老师在群里问「cat 上怎么看 gc」. 好好的一个群 看到有 GC 的问题,立马做出小鸡搓手状. 之后毛老师发来 ...

  10. mysql gtid 还是pxc_记一次 PXC 集群拆分引发的思考

    原标题:记一次 PXC 集群拆分引发的思考 作者简介 冷正磊 2018年2月加入去哪儿网 DBA 团队,主要负责机票业务的 MySQL 和 Redis 数据库的运维管理工作,以及数据库自动化运维平台部 ...

最新文章

  1. linux转换二进制命令,Linux--二进制,十进制,十六进制如何转换,单位换算
  2. C/C++位域结构深入解析
  3. 北斗三号b1c频点带宽_北斗三号导航信号的创新设计(一)
  4. 【CCF】201612-1中间数
  5. C++ 过去的这一年
  6. AppStore刷榜那些事儿:猪,也是这么想的
  7. 优秀!文件备份工具——IDrive for Mac
  8. 使用SQL语句创建数据库
  9. “备胎”海思的蛰伏与挑战
  10. 电商十二、pinyougou02.sql的内容③
  11. 高通mtk手机常用指令
  12. 学习单片机,通常要学哪些知识点?(附送75块带屏开发板)
  13. mapboxgl - 用webgl展示海量数据,是否可行?
  14. 需要达到什么样的水平才能找到一份看起来不错的互联网实习?
  15. 分享8个超好用的免费工具/软件/网站(一定有你要的)
  16. 美加州将遭太平洋风暴侵袭 警方要求部分民众撤离
  17. 小程聊微服务-数据抽取那点事(一)
  18. Docker常用命令-全流程
  19. Java——【案例】Java坦克大战游戏[版本1]能控制移动的GUI界面坦克大战游戏
  20. GNSS及其定位原理,差分GNSS技术分析

热门文章

  1. JS getElementsByClassName
  2. 解决Linkedin sdk无法保持oauth_token
  3. C#读写XML的演示程序(1)
  4. memcached—Memcache安全性
  5. C# 获取Newtonsoft.Json的JObject多层节点内容
  6. WinForm窗体生命周期
  7. 如何基于protobuf实现一个极简版的RPC(转载)
  8. python mysql使用教程_python进阶之Mysql入门教程
  9. pyqt5优秀项目python_Python优秀开源项目Rich源码解析
  10. python窗口大小动态变化_python – 如何让tkinter画布动态调整窗口宽度?