1

这个问题肯定会尖叫糟糕的编程实践,但是,我很好奇这里是否涉及任何性能风险。

想象一下,你有一个只附加了一个方法(不包括构造函数)的类,为了简单起见,我们会说:

public class TestClass{

public TestClass(){

    // Set values or whatever you want in the constructor

}
public String printString(){

    System.out.println("print");
}
}

现在考虑到只有一种方法,显然任何时候您使用该类都可能想要调用该方法printStringprintString那么在构造函数中调用是否有任何负面影响(除了理智之外) ?而不是做testClass test = new testClass()然后打电话test.printString()

同样,这个问题是关于性能的——而不是编程实践。

4

3 回答 3

1

您可以放入printStringenum Utility 类或 Singleton 之类的

public enum TestClass {;
    public static void printString(){
        System.out.println("print");
    }
}

但是,从性能的角度来看,与向控制台写入一行的成本相比,每次创建一个新对象的成本非常小。不同的是名义上的。

于 2012-12-05T15:14:41.470 回答
1

意见上没有性能差异,因为编译器有相同的语句要编译(无论你把语句放在调用类还是构造函数中),而 JVM 有确切的语句要执行。

于 2012-12-05T15:14:49.057 回答
1

你可以做的是使用枚举

public enum TestEnum {
    TestEnum;
    public String printString() {
        System.out.println("print");
        return null;
    }
}

从性能的角度来看不会有太大差异,但从编码的角度来看,您无需每次都创建对象。您也可以将静态实用程序类作为枚举。

于 2012-12-05T15:14:03.353 回答