类方法与实例方法

Nik*_*ntz 10 java class instance object-oriented-analysis

您是否通常测量类方法比实例方法更快,因为它不需要加载实例?如果是这样,我们应该尽可能使用类方法吗?谢谢

Tho*_*sen 12

无论什么更快,多少,您都需要记住一个主要区别:

  • 你不能@Override一个静态的方法!

这非常重要,因为你基本上说你不会,也不会,使用Java中的一个主要优点,即重写子类对象中的方法.当您调用静态方法时,您将继续使用该静态方法,并且不能在子类对象中覆盖它.

同样要解决"哪个更快",然后构建一个REAL测试,而不仅仅是一个微基准来调查实际的发现.使用几个JVM进行测量,因为JIT实现可能会影响这一点.


Bjö*_*lex 0

我一般不知道,但我记得前一段时间对某些应用程序进行了测量,静态方法确实更快。

从设计的角度来看,我认为任何方法都应该是静态的(意味着没有显式传递实例作为参数或类似的东西)。

  • 不要在没有测试自己的情况下接受“记得测量过......前一段时间”。您使用的 JVM 可能不同,和/或可能已更新。 (6认同)
  • *但我记得前段时间对某些应用程序进行了测量,静态方法确实更快。*很长一段时间不再真实 (2认同)