首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java方法调用与使用变量

Java方法调用与使用变量
EN

Stack Overflow用户
提问于 2009-12-18 02:51:29
回答 12查看 20.1K关注 0票数 53

最近,我和我的团队领导讨论了使用临时变量与调用getter方法的问题。很长一段时间以来,我一直认为,如果我知道我将不得不多次调用一个简单的getter方法,我会将其放入一个temp变量中,然后使用该变量。我认为这在风格和性能方面都会更好。然而,我的lead指出,在Java4和更新版本中,这在某种程度上是不正确的。他相信使用较小的变量空间,所以他告诉我,与使用temp变量相比,调用getter方法的性能影响可以忽略不计,因此使用getter更好。然而,我并不完全相信他的论点。你们觉得怎么样?

EN

回答 12

Stack Overflow用户

回答已采纳

发布于 2009-12-18 03:01:47

永远不要为了性能而编码,总是为了可读性而编码。让编译器来做这项工作。

它们可以改善编译器/运行时以更快地运行好的代码,而突然之间你的“快速”代码实际上减慢了系统的速度。

Java编译器和运行时优化似乎首先处理更常见/可读的代码,因此您的“优化”代码更有可能在以后被取消优化,而不是刚刚干净地编写的代码。

注意:

这个答案指的是像上面提到的问题一样的Java代码“技巧”,这不是一个糟糕的编程,它可能会将循环的级别从O(N)提高到O(N^2)。一般情况下,编写干净、干燥的代码,并在修复操作之前等待明显太长的时间。除非你是一名游戏设计师,否则你几乎永远不会达到这一点。

票数 77
EN

Stack Overflow用户

发布于 2009-12-18 02:55:44

你的线索是正确的。在VM的现代版本中,返回私有字段的简单getter是内联的,这意味着不存在方法调用的性能开销。

票数 24
EN

Stack Overflow用户

发布于 2009-12-18 04:30:20

不要忘记,通过将getSomething()的值赋给一个变量而不是调用它两次,您假定getSomething()会在您第二次调用它时返回相同的内容。在您正在讨论的场景中,这可能是一个有效的假设,但有时不是。

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

https://stackoverflow.com/questions/1923795

复制
相关文章

相似问题

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