Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果只有一个方法,最好在初始化期间或之后使用对象方法?_Java_Performance_Class_Runtime - Fatal编程技术网

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()方法,我看不到性能上的差异。