当前位置: 首页 > news >正文

JVM学习-彻底搞懂Java自增++

从字节码角度分析i++和++i的区别

 public void method6() {int i =10;i++;     //在局部变量表上直接加1}

在这里插入图片描述

public void method7() {int i =10;++i;         //字节码同i++}

在这里插入图片描述

public void method8() {int i = 10;int a = i++;   //通过下图可以看出先将局部变量表中的值push到操作数栈,然后局部变量表索引1的位置加1,a = 10int j = 20;int b = ++j;  //通过下图可以看出先局部变量表索引3的位置加1,然后将局部变量表中索引3的值push到操作数栈,b = 11}

在这里插入图片描述

  @Testpublic void method9() {int i = 10;i = i++;             //先将局部变量表1的位置的值10,push到操作数栈,然后局部变量表1的值加1,然后istore_1又将操作数栈10的值写回局部变量表1的位置System.out.println(i);   //最终i的值为10}

在这里插入图片描述

http://www.lryc.cn/news/356358.html

相关文章:

  • 【全开源】民宿酒店预订管理系统(ThinkPHP+uniapp+uView)
  • 9.3 Go语言入门(变量声明和函数调用)
  • CVE-2020-7982 OpenWrt 远程命令执行漏洞学习(更新中)
  • 代码随想录——左叶子之和(Leetcode404)
  • 解禁谷歌等浏览器禁止网站使用麦克等媒体设备
  • 如何彻底卸载sql sever2022
  • 「51媒体」如何与媒体建立良好关系?
  • Selenium 库的爬虫实现
  • 【文末附gpt升级方案】数据虚拟化技术的优势
  • C++ 常量和变量
  • 【cocos creator 】生成六边形地图
  • TypeScript类型体操练习
  • leetcode231-Power of Two
  • 贪心算法简单介绍
  • 眼底项目经验
  • 使用arco design实现动态列信息的表格
  • 解决 fatal: Not a git repository (or any of the parent directories): .git 问题
  • Spring 模拟管理Web应用程序
  • 修改了vue3 <script setup>留言板
  • jQuery 常用API
  • 内网安全-隧道搭建穿透上线内网穿透-nps自定义上线内网渗透-Linux上线-cs上线Linux主机
  • 【AHK V2】设计模式之命令模式
  • 2024年5月20日 (周二) 叶子游戏新闻
  • 【SQL学习进阶】从入门到高级应用(二)
  • FL Studio v21.2.3.4004中文破解版百度网盘下载
  • 从0开始写一个环境保护网站的第3天(JAVAWEB)
  • Java中volatile关键字
  • 医院挂号就诊系统的设计与实现
  • SpringBoot整合RabbitMQ的快速使用教程
  • pytorch比较操作