Java 最终确定私有方法?

Java 最终确定私有方法?,java,final,Java,Final,使私有方法成为最终方法是否有益?这会提高性能吗 我认为“private final”没有多大意义,因为私有方法不能被重写。因此,方法查找应该和使用final时一样高效 如果可能的话,将私有助手方法设置为静态会更好吗 最好用什么 private Result doSomething() private final Result doSomething() private static Result doSomething() private static final Result

使私有方法成为最终方法是否有益?这会提高性能吗

我认为“private final”没有多大意义,因为私有方法不能被重写。因此,方法查找应该和使用final时一样高效

如果可能的话,将私有助手方法设置为静态会更好吗

最好用什么

  private Result doSomething()
  private final Result doSomething()
  private static Result doSomething()
  private static final Result doSomething()

不会的。私有方法不会被继承。因此,让它们成为最终结果是一个没有实际意义的问题。还请注意,您不应将方法设置为最终性能。JVM比这更聪明。这种优化没有多大用处。您应该根据语义和设计将事物设置为final、private、private、protected、private等

私有静态结果doSomething()
,如果此方法未使用任何实例变量。
在任何情况下,将它们设置为final都没有意义,因为访问器是私有的。

将私有方法标记为final不会改变任何东西,但它可能会使初级开发人员在查看代码时感到困惑。保持简单。

IBM开发人员工作:这篇文章是一篇关于在Java中使用
final
关键字的老生常谈:

通过使方法成为final,我们不能覆盖该方法。因为私有方法不能在类之外访问。没有必要使方法成为最终的和私有的。它可能会影响性能。

在方法中添加
final
,不会提高Sun HotSpot的性能。在可以添加
final
的地方,HotSpot将注意到该方法从未被重写,因此将其视为相同的方法

在Java
private
中,方法是非虚拟的。即使使用子类可以访问的嵌套类,也不能重写它们。例如,调用privates的指令不同于非privates的指令。将
final
添加到私有方法中没有任何好处


像以往一样,这些微观优化不值得花时间在上面。

伙计,我希望C#有一个最终的关键词。取而代之的是const、readonly和sealed。bleh。它不会影响性能,编译器比这个更聪明。私有方法不会被继承,因此不能被重写。子类可以包含与超类中最后一个私有方法同名的方法。因此,将方法声明为private final是没有意义的。。。。在99.9%的时间里。您将知道微优化何时有意义。更重要的是,
私有final
方法声明在语义上毫无意义,因此它只会在没有声明的地方增加混淆;只要
private
就足够了。内部类呢?