【发布时间】:2010-07-29 20:29:52
【问题描述】:
我很想知道这两个 Java 方法调用中的任何一个在处理器时间、内存分配和/或垃圾回收方面的行为是否完全不同。
SomeObject myObj = new SomeObject();
myObj.doSomething();
对比
new SomeObject().doSomething();
【问题讨论】:
-
我希望你不要经常创建一个对象只是为了调用它的单个方法。或者担心这样的表现。
-
@Tom:那为什么不好?如果他只需要执行一种方法,然后他就完成了,那么,好吧,这就是他需要做的一切。比如,“new Logger().write("Panic!Abort!我们要倒下了!");”我们没有使用记录器 agan。至于性能差异,对于一个电话,我敢肯定这是微不足道的。但这些东西加起来。节省一纳秒就是赚一纳秒。
-
不经常。它来自于在 Android 应用程序中生成一个新线程。
-
@Jay 纳秒富,毫秒穷。
-
我不能等到我有足够的代表来创建自己的标签并将其粘贴到其他人的帖子上 :) 说真的,我认为差异很小 - 我从不担心。我什至没有将其更改为“更快”的方式。我只是好奇。