静态vs内部类方法-性能[java 8]

时间:2019-01-28 14:22:13

标签: java java-8 jvm

在Java 8中,静态方法和普通方法在类中的性能是否有区别?

class First {
    public static String methodStatic1() {
       //performance
    }
}

vs

class Second {
    public String method2() {
       //performance
    }
}

1 个答案:

答案 0 :(得分:3)

解决性能方面的问题:不必无意义地创建某个实例的实例会比较便宜,但是区别很可能是完全无关的。随着时间的流逝,专注于清晰的设计将变得越来越重要。

实用程序方法通常是静态的,并且如果类中的所有方法都是静态的,则最好将类定型并包括一个私有构造函数以防止实例化。从根本上说,对于不代表任何真实“事物”的实用程序类,构造实例是没有逻辑意义的,因此请避免使用它。

另一方面,这确实降低了灵活性:如果这些实用工具方法中的任何一个包含您可能想要进行多态更改的功能(例如,出于测试目的),则可以考虑将其保留为实例方法-并尝试提取一些有意义的类名。代表所涉及的“事物”。 (例如,一个FooConverter可以实例化,而FooUtil则没有。)