【问题标题】:what is the reason helper classes method declared in static在静态中声明辅助类方法的原因是什么
【发布时间】:2014-07-07 11:23:39
【问题描述】:

为什么所有辅助类或实用程序类都在静态上下文中声明?

不每次都创建instanceof类只是为了方便吗?

静电会严重影响性能吗?

例如:

DateHelper.getCurrentDate();

【问题讨论】:

  • 一个原因:因为它们是无状态的。
  • 静态不会对性能产生有害影响,相反。由于不需要创建实例,因此效率更高。
  • 静态通常不会产生性能差异。在特定情况下,这可能很重要。
  • 它更像是一个设计的东西。正如 Hovercroft 指出的那样,没有必要在此处保留 状态
  • @Kayaman 您确实说过“静态不会对性能产生有害影响,相反”。在很多情况下,static 会影响性能(很多情况下它会提高性能)

标签: java


【解决方案1】:

因为它们不局限于状态,所以它们有一个纯粹无状态的单一功能。例如 Math.abs(double a) ,它接受一个双参数并返回绝对值。就如此容易。所以你不必做类似的事情

Math m=new Math();
m.abs(12.33);

每次进行仅取决于其参数的简单绝对值计算时,使用 static 会简化调用实用程序方法。

编辑:- 想补充一点,使用静态方法不会影响性能。如果方法是 static synchronized 并且多个线程想要同时访问它,而不是在不同的实例中通过线程访问相同的方法(在非静态上下文中),那么只会有延迟。但是大多数实用程序方法在功能上都是原子的,因此使它们同步是没有意义的。

【讨论】:

    【解决方案2】:

    不要创建他们的实例。你也可以让他们关注singleton pattern

    【讨论】:

    • 没问题。再也不会发生了
    猜你喜欢
    • 2014-05-06
    • 2019-03-08
    • 1970-01-01
    • 2017-06-22
    • 1970-01-01
    • 1970-01-01
    • 2011-09-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多