【问题标题】:Functions Vs Static Methods函数与静态方法
【发布时间】:2012-05-09 08:58:42
【问题描述】:

在多线程程序中使用函数或使用静态方法哪个更快?请解释为什么更快。?

【问题讨论】:

  • 鉴于“函数”并不是 Java 中真正使用的术语,您应该澄清您的问题。理想情况下,请举一个展示这两种方法的示例。
  • 你应该使用静态与非静态方法。
  • 我认为他的意思是方法,而不是功能。
  • @ChandraSekhar 你应该动词 ;)

标签: java methods static-methods


【解决方案1】:

即使这两种方法之间存在明显差异(我对此表示严重怀疑),您也不应该以此为基础设计程序。 (几乎)不应该为了获得更好的性能而牺牲好的设计。因为你没有得到很多,但你失去了很多。

【讨论】:

  • +1:即使您发现存在细微差别,但您可能会失望地发现差异随着 JVM 的改进而变化。这意味着,如果您为了适应它而对设计进行了重大更改,但后来发现这实际上变慢了,那可能会令人失望。坚持简单明了的东西,不要担心每一纳秒,除非你能说出它会对业务产生多大的影响。
  • 完全同意。静态与实例的决定应基于此方法是否逻辑上属于 - 特定对象实例或特定类的所有对象。尽管可能会有一点性能损失(公共的非最终方法是虚拟调用),但通常可以忽略它,而且 JVM 变得越来越智能并且处理起来越来越有效。如果这样的差异对您的应用程序真的很重要,那么 Java 可能是一个糟糕的选择。
【解决方案2】:

您可能听说过“纯函数”更适合多线程。纯函数通常可以在 Java 中实现为静态方法,但也可以实现为实例方法。要点是,在多线程时,如果您没有任何可以更改的全局变量,总是会更好。所以如果你有一个不可变的对象,那和用静态方法实现一个纯函数一样好。

【讨论】:

    猜你喜欢
    • 2017-12-19
    • 2021-06-04
    • 1970-01-01
    • 2010-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-14
    相关资源
    最近更新 更多