博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AJPFX辨析Java中运算符 ++ 和 += 的区别
阅读量:6839 次
发布时间:2019-06-26

本文共 496 字,大约阅读时间需要 1 分钟。

我们都知道Java中 ++ 和 +=1 都是把数字增加一后,把值赋给左边,那二者有什么区别呢?

i+=1 运行的底层Heap申请一个区域存放i,在数据区域开劈一个区域存放1,2个内存段被数据被送入到寄存器中进行运算,运算结果被放到heap中,数据区域运算后被自动释放后有GC回收

i++ 是将heap中数据直接送到寄存器中进行运算,运算结果会直接存放在heap中。
从上面的

可以写个测试程序测试:

for(int i=0;i<100000;i++){
i++;
}和
for(int i=0;i<100000;i++){
i+=1;
}
第二个每运行一次需要在数据区域申请内存存放1,用完后再释放。
如果要提升i+=1的运行效率的话,可以讲1作为一个静态变量存储,如:
public static int cnt = 1;
for(int i=0;i<100000;i++){
i+=cnt;
}
因为静态变量只要申请一次就永久存在内存中了,第二次使用时直接从内存中取用而不用不停的申请内存和释放内存了

转载于:https://blog.51cto.com/14314113/2397374

你可能感兴趣的文章
linux系统启动级别
查看>>
bash编程-循环控制的结构
查看>>
Java-第三章-使用if选择结构实现,如果年龄够7岁或5岁并且是男,可以搬桌子
查看>>
使用 /proc 文件系统来访问 Linux 内核的内容
查看>>
如何对DB2数据库做性能分析?
查看>>
andriod之log打印
查看>>
Android2.3解析json出错
查看>>
高并发&高可用系统应对策略的一些思考
查看>>
我的友情链接
查看>>
如何训练自己专注力
查看>>
乔春洋:网上品牌战略
查看>>
Thrift的java和php数据交互
查看>>
后缀数组的学习(三):SA数组实现代码分析
查看>>
和为s的两个数字与和为s的连续正数序列
查看>>
CSS3与动画有关的属性transition、animation、transform对比
查看>>
hash
查看>>
分栏控制器
查看>>
【Python】str转datetime与datetime计算
查看>>
linux命令:系统裁剪之五dropbear嵌入式系统专用ssh服务
查看>>
linux下进制是如何转换?
查看>>