Java 如果只有一个方法,最好在初始化期间或之后使用对象方法?
这个问题肯定会让糟糕的编程实践叫苦不迭,然而,我很好奇这里是否有任何性能风险 假设您有一个只附加了一个方法(不包括构造函数)的类,为了简单起见,我们将说:Java 如果只有一个方法,最好在初始化期间或之后使用对象方法?,java,performance,class,runtime,Java,Performance,Class,Runtime,这个问题肯定会让糟糕的编程实践叫苦不迭,然而,我很好奇这里是否有任何性能风险 假设您有一个只附加了一个方法(不包括构造函数)的类,为了简单起见,我们将说: public class TestClass{ public TestClass(){ // Set values or whatever you want in the constructor } public String printString(){ System.out.println("print"); }
public class TestClass{
public TestClass(){
// Set values or whatever you want in the constructor
}
public String printString(){
System.out.println("print");
}
}
现在考虑到只有一个方法,显然,无论何时使用该类,您都可能希望调用该方法printString
。那么,在构造函数中调用printString
是否有任何负面影响(除了理智性)?而不是执行testClass test=newtestclass()
然后调用test.printString()
同样,这个问题是关于性能的,而不是编程实践。您可以做的是使用Enum
public enum TestEnum {
TestEnum;
public String printString() {
System.out.println("print");
return null;
}
}
从性能的角度来看,不会有太大的差异,但从编码的角度来看,您将不需要每次都创建对象。您还可以将静态实用程序类设置为enum。您可以将
printString
放入enum实用程序类或类似于Singleton的类中
public enum TestClass {;
public static void printString(){
System.out.println("print");
}
}
但是,从性能的角度来看,与向控制台写入一行代码的成本相比,每次创建一个新对象的成本非常小。不同是概念上的。认为编译器有相同的语句要编译(无论您将语句放在调用类还是构造函数中),而JVM有确切的语句要执行,因此性能上没有差异 您可以将printString放在enum中,并在任何地方使用它。请在类名的开头使用大写字母。java开发人员看到类名开头有一个小写字母时会感到非常兴奋。@amit是的,是的。我知道。手写得真快,我错过了。为你修好了;)如果总是在启动对象后直接调用printString()方法,我看不到性能上的差异。