使私有方法最终?
使私人方法最终有益吗? 这会提高性能吗?
我认为“私人决赛”没有什么意义,因为私人的方法不能被推翻。 所以方法查找应该像使用final时一样高效。
如果使用私有帮助器方法是静态的(如果可能的话)会更好吗?
什么是最好的使用?
private Result doSomething() private final Result doSomething() private static Result doSomething() private static final Result doSomething()
使用Sun HotSpot添加final
方法不会提高性能。 在final
可以添加的地方,HotSpot会注意到这个方法从来没有被覆盖,所以对待它是一样的。
在Java中, private
方法是非虚拟的。 你不能覆盖他们,甚至使用嵌套的类可以访问子类。 例如,指导私人的方法与用于非私人的方法不同。 添加final
的私人方法没有可能性。
像往常一样,这些微观优化是不值得花时间的。
private static Result doSomething()
,如果此方法不使用任何实例variables。 在任何情况下,使它们最终是没有意义的,因为访问者是私人的。
不会的 私有方法不被inheritance。 所以使他们最终是一个有争议的问题。 另外请注意,你不应该使方法最终的性能。 JVM比这更聪明。 这种优化没有多大用处。 你应该根据语义和devise来做最后的,私人的,私人的,保护的,私人的等等。
将私有方法标记为final并不会改变任何内容,但可能会影响初级开发人员查看您的代码。 把事情简单化。
IBM Developer的工作原理: Java理论与实践:这是您的最终答案吗? 文章是一个古老的,但在Java中使用final
关键字goodie:
通过使方法最终我们不能重写该方法。 由于私人方法不能在课堂外访问。 没有办法使得这个方法是最终的和私人的。 它可能会打到表演。