Java 静态方法作为独立类慢吗?

Java 静态方法作为独立类慢吗?,java,performance,Java,Performance,我想知道: 假设我有一个类,它使用静态对象进行某些计算: public class test { static String test = "Hello World"; public static void main(String[] args) { System.out.println(staticMethod()); } static String staticMethod() { return test;

我想知道:

假设我有一个类,它使用静态对象进行某些计算:

public class test {

    static String test = "Hello World";

    public static void main(String[] args)
    {
        System.out.println(staticMethod());
    }

    static String staticMethod()
    {
        return test;
    }
}
现在,如果我使用另一个类似这样的类,计算时间会有差异吗

public class test {

    static String test = "Hello World";

    public static void main(String[] args)
    {
        System.out.println(test2.staticMethod());
    }

}

因此,如果我将静态方法移动到另一个类中

我的理论是,因为Java传递指针,所以应该没有区别。但是编译器不需要挖掘更多的代码,因此计算时间会增加吗

但是编译器不需要挖掘更多的代码,因此计算时间会增加吗

你一定是指编译时间。计算发生在运行时,其性能与编译计算代码所用的时间无关

换句话说:静态方法的位置对性能没有影响

但是编译器不需要挖掘更多的代码,因此计算时间会增加吗

你一定是指编译时间。计算发生在运行时,其性能与编译计算代码所用的时间无关


换句话说:静态方法的位置对性能没有影响。

编译器需要做更多的工作,但在运行时不会产生任何影响。特别是,如果该(短)方法运行足够多的时间,它将被内联,因此它的原始位置是不相关的。

编译器将有更多的工作,但在运行时它不会有任何区别。特别是,如果该(短)方法运行的次数足够多,它将被内联,因此它的原始位置是不相关的。

使用
静态
方法会稍微减少开销,因为您保证了编译时绑定<代码>静态方法调用将创建
字节码
指令
invokestatic.]

实际上,这不会有任何区别。JVM可以选择优化的方式,使类中的一个方法的
静态
调用更快,而另一个类中的另一个方法的
静态
调用更快。造成性能下降的根本原因主要是过早优化


还请注意,旧JVM可能/可能没有优化功能。

使用
静态
方法会稍微减少开销,因为您保证了编译时绑定<代码>静态
方法调用将创建
字节码
指令
invokestatic.]

实际上,这不会有任何区别。JVM可以选择优化的方式,使类中的一个方法的
静态
调用更快,而另一个类中的另一个方法的
静态
调用更快。造成性能下降的根本原因主要是过早优化


还要注意,旧JVM可能/可能没有优化功能。

谢谢!当前答案有很多附加值。我很感激!谢谢当前答案有很多附加值。我很感激!
import static dataConnection.test.*;

public class test2 {

    static String staticMethod()
    {
        return test;
    }

}