让私人方法最终?

dea*_*mon 48 java final

私有方法最终是否有益?这会改善表现吗?

我认为"私人决赛"没有多大意义,因为私有方法无法被覆盖.所以方法查找应该像使用final时一样高效.

私有帮助方法是静态的(如果可能的话)会更好吗?

什么是最好用的?

  private Result doSomething()
  private final Result doSomething()
  private static Result doSomething()
  private static final Result doSomething()
Run Code Online (Sandbox Code Playgroud)

Tom*_*ine 66

添加final到方法不会提高Sun HotSpot的性能.在哪里final可以添加,HotSpot会注意到该方法永远不会被覆盖,因此对待它是相同的.

在Java中,private方法是非虚拟的.您无法覆盖它们,甚至可以使用嵌套类,它们可以被子类访问.例如,instructoin调用privates的方法与用于非私有的方法不同.添加final到私有方法没有任何可能性.

与以往一样,这种微观优化并不值得花时间.


Bin*_*ony 21

private static Result doSomething(),如果此方法不使用任何实例变量.在任何情况下,由于访问者是私有的,因此将它们作为final是没有意义的.


Cha*_*tni 8

不,它不会.私有方法不是继承的.因此,让他们成为最终是一个有争议的问题.另请注意,您不应将方法设为最终性能.JVM比这更聪明.这种优化没有太大用处.您应该根据语义和设计使事物成为最终的,私有的,私有的,受保护的,私有的等.


Alb*_*gni 7

将私有方法标记为final是不会改变任何东西,但它可能会混淆初级开发人员查看代码.把事情简单化.