【发布时间】:2018-04-26 01:44:19
【问题描述】:
我有 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();
}
哪种方法适合我的要求?
【问题讨论】:
-
没有与合同相关的重大差异。您只需要考虑对调用者类进行单元测试(使用静态方法更难)。否则,归结为偏好(静态导入等)
-
您在此处显示的内容看起来像“单例与静态上下文”。在这种情况下,这应该是相关的:stackoverflow.com/a/12367609, When is Singleton appropriate?
-
@Ernest 抱歉,我没听清楚,是一样的吗?