当前位置:网站首页>i++与 ++i 的区别
i++与 ++i 的区别
2022-07-30 05:45:00 【zpv2jdfc】
首先看一段代码
int i=1,j=2;
int a = i++;
int b = ++j;
上述代码对应的字节码
0 iconst_1
1 istore_1
2 iconst_2
3 istore_2
4 iload_1
5 iinc 1 by 1
8 istore_3
9 iinc 2 by 1
12 iload_2
13 istore 4
从4、5行号的指令可以看出,i++是先将i从局部变量表取出到操作数栈中,然后将局部变量表中的i加1.
++j对应9、12行号的之指令,是先将局部变量表中的j加1,然后取出到操作数栈中。
jdk1.8 jvm规范中对IINC指令的描述:
Description
The index is an unsigned byte that must be an index into the local variable array of the current frame (§2.6). The const is an immediate signed byte. The local variable at index must contain an int. The value const is first sign-extended to an int, and then the local variable at index is incremented by that amount.
边栏推荐
猜你喜欢

【正点原子】IIC的学习与使用(未完...)

Conda 安装 tensorflow gpu 1.13.1(验证可行)

protobuf coding and network communication applications (1)

AAcell五号文档室——跨平台文件传输的小室一间一间的

QT每周技巧(2)~~~~~~~~~界面按钮

基于全球模式比较计划CMIP6与区域气候-化学耦合模式 WRF-Chem 的未来大气污染变化模拟

QT串口动态实时显示大量数据波形曲线(四)========“界面的美化与处理”

昆仑通态屏幕制作(连载4)---基础篇(图形设定与显示,按钮灯)

什么是过拟合、欠拟合现象以及如何缓解?

边境的悍匪—机器学习实战:第六章 决策树
随机推荐
写在公众号之前——QT,ARM,DSP,单片机,电力电子与传动!
生产力工具分享——简洁而不简单
探究make_shared效率
基于OpenCV的相机标定流程
Function functional interface and application
三种内核结构---宏内核、微内核、混合内核
边境的悍匪—机器学习实战:第十五章 使用CNN和RNN处理序列
Machine Learning, Deep Learning Based on MATLAB 2021b
QT串口动态实时显示大量数据波形曲线(五)========“最终完美解决版”
【江科大自化协stm32F103c8t6】笔记之【入门32单片机及EXTI外部中断初始化参数配置】
UAV ecological environment monitoring, image processing and GIS data analysis
与所有 ARM 工具、软件兼容?韦斯佰瑞这款MCU内核值得关注!
openssl 1.1.1编译语句
六、Kotlin基础学习:函数
Generalized Focal Loss 论文阅读笔记
用户密码加密编码使用 Bcrypt 代替 MD5,SHA1和SHA256
Biome-BGC 生态系统模型与应用
Knowledge distillation method of target detection
TCP为什么要三次握手,握手过程中丢包会怎么样?
昆仑通态屏幕制作(连载3)---基础篇(按钮串口发送)