gpt4 book ai didi

java - 实用程序类的静态方法与非静态方法的性能

转载 作者:太空狗 更新时间:2023-10-29 23:00:23 25 4
gpt4 key购买 nike

我有一个实用程序类,它有没有实例变量的非静态方法。所以我正在考虑将所有方法转换为 static 方法。我怀疑会有任何内存或性能影响。但我只是想确认一下。

将这样的方法更改为static 是否会对程序的性能产生影响?

最佳答案

最后要补充的是人们在这里所说的话。

使用 static 方法的开销会稍微少一些,因为您已经保证了编译时绑定(bind)。静态方法调用将创建字节码指令invokestatic。 ]

在一个典型的场景中,实例方法在运行时被绑定(bind),并且会创建字节码指令invokevirtual,它比invokestatic有更高的开销。

但是,这仅在可能有数百万次迭代的情况下才有意义,我会警告不要以此驱动您的类设计。从设计的角度做有意义的事情。根据您的描述,static 方法可能是可行的方法。事实上,这是创建实用程序类的相对标准做法:

public class MyUtilities {
private MyUtilities() { } // don't let anyone construct it.
public static String foo(String s) { ... }
}

关于java - 实用程序类的静态方法与非静态方法的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13288823/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com