最好的静态方法和非静态方法

时间:2018-04-25 17:30:33

标签: java static

我有Util类,我有很多方法可以在整个项目中使用。 我的问题是 - 考虑内存堆,性能最好通过类引用使用静态方法或由该类的对象调用的非静态方法。例如:

public class Utilities {

    private static Utilities utils;

    public static Utilities getInstance() {
        if (utils == null)
            utils = new Utilities();
        return utils;
    }

    public static void someMethod() {

    }

    public void someMethod2() {

    }

}

public static void main(String[] args) {
    Utilities.someMethod();
    Utilities.getInstance().someMethod2();
}

哪种方法符合我的要求?

1 个答案:

答案 0 :(得分:1)

除非你有一个非常具体的目标,否则它无关紧要。可以调整类或方法声明格式,例如:

确保应用程序最关键部分中的方法内联是有意义的,但只有当您的应用程序受CPU约束时才会发生这种情况。对外部资源的单次调用,例如数据库查询将比本地代码贵一个数量级。

在开始优化代码之前,代码应该是可重写的。 static方法更难以进行单元测试,因此如果它们包含需要进行单元测试的重要逻辑,则应该避免这些方法。