Java方法vrs参考性能
我更喜欢尽可能少地调用一个方法,因为我认为调用一个方法的性能代价大于只调用一次并保留一个引用的性能代价。问题是,我认为我从C++中得到了这个观点,从那时起,事情发生了很大的变化。p>
那么哪个更便宜呢
something.getOrDoSomething();
something.getOrDoSomething();
或者
Thing thing1 = something.getOrDoSomething();
//use thing1 from now on.
现在我知道一个方法可能包含任何东西,所以让我们假设它们不包含任何东西。它们只是简单的getter。我是否应该注意JVM性能优化
我想澄清这一点,因为我在遗留代码中看到了很多
# 1 楼答案
既然你在问性能:它。没关系
JVM中的JIT将在运行时优化字节码,这些选项的执行速度将比您想象的还要快。不要担心这种微优化,除非已经证明这是应用程序中的一个瓶颈,并通过使用探查器之类的工具加以证明
根据您的评论:
在这里,你关心的不仅仅是性能。这里的答案是:对于正在使用的代码部分或代码可读性来说,这是一个有用的问题:
另一个需要考虑的因素是Law of Demeter:
例如,这是一段如下代码:
应该改写为: