0

如果类中没有其他方法public static调用它,是否有充分的理由将私有方法声明为静态?即使该方法不需要任何实例变量,例如将两个输入参数加在一起。声明一个静态方法是否有任何开销,在这种情况下,即使它可以独立于它所在的类的实例运行,它也值得不是静态的?

4

2 回答 2

4

实例方法具有必须将this引用传递给方法的开销,即使它没有在方法中使用,所以调用静态方法比调用实例方法便宜。

优化方面它没有添加任何东西:该方法已经是私有的,因此如果 JVM 愿意,它可以自由地内联它。静态或非静态没有区别。

设计方面:这是一种私有方法,因此您可以自由地做任何您想做的事情。

于 2013-04-02T23:44:39.840 回答
0

将方法声明为静态的原因与它是否为私有无关。如果它不引用任何实例变量,您可以将其声明为静态,有些人可能认为这样做是一种好习惯。

于 2013-04-03T01:31:06.390 回答