首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么算术赋值运算符更有效?

为什么算术赋值运算符更有效?
EN

Stack Overflow用户
提问于 2013-11-13 23:02:10
回答 4查看 2K关注 0票数 1

速记Java算术运算符的一个示例是用于a=a+4;a += 4;

在完整的参考文献Java2中,赫伯特·斯希尔特提到“Java运行时系统比它们的等效系统更有效地实现了它们”。

它的实现比a=a+4;更高效的原因是什么

EN

回答 4

Stack Overflow用户

发布于 2013-11-13 23:03:14

在任何给定的执行环境中,只有微基准测试才能确认或拒绝作者的声明。

在现代JVM上,这两个版本很可能表现出相同的性能。

附注:如果书名中的"2“是"Java 2”中的“2",我强烈建议你买一本更新一点的书!

票数 6
EN

Stack Overflow用户

发布于 2013-11-13 23:10:21

对于a += 4javac可以产生按常量递增局部变量的IIC指令。从理论上讲,它比IADD更有效。

IADD确实添加了int,从堆栈中弹出两个值,然后返回结果。IIC在堆栈上不做任何事情,而是递增局部变量。

因此,如果您可以使用非常有限和原始的JVM,就像您在Java Card上发现的那样,这可能很重要,但在%99.9的场景中,这并不重要。Java、JVM和大多数其他虚拟机都取得了长足的进步。

顺便说一句,你用的是哪个版本的书?Amazon提到它将在2014年有第9个版本。如果这句话还在书里,我会很惊讶的。

票数 4
EN

Stack Overflow用户

发布于 2013-11-13 23:09:44

与一元增量运算符(++)一样,两个版本在性能方面是相同的,因为从它们中生成相同的字节码(至少使用Eclipse JDT)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19957085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档