我最近尝试养成使用的习惯final
任何符合逻辑的关键字,就像任何不应该扩展的类一样。
我这样做纯粹是因为我喜欢保持严格而简洁的编码风格。
除了在为其他方开发应用程序/游戏基础或与他人合作等情况下有明显的优势之外,使用时是否有任何实际好处final
?即性能。
根据这个广泛的测试 http://jacksondunstan.com/articles/413, the final
关键字不会对性能造成丝毫差异。
The way final
在 ActionScript 中使用,这并不奇怪:final 关键字仅标记类和类方法,因此它仅影响继承。我看不出为什么调用最终方法应该比调用任何其他方法更快的逻辑原因:运行时仍然需要查找函数指针并执行调用。
对于Java 中的方法和类 http://www.ibm.com/developerworks/java/library/j-jtp04223/index.html#N100A7。然而,在Java中,final
also 将引用标记为不可变 https://stackoverflow.com/questions/4971286/javas-final-vs-cs-const/4971330#4971330。与在 ActionScript 中使用相比,这是一个很大的优势,因为它允许编译器“内联”值(即将字节代码中变量的所有引用替换为其实际值,从而消除查找过程),其中包括其他好处- 可以稍微加快性能。也许我们会在 ActionScript 的未来版本中看到它的一些用途 - 这对于提高代码清晰度和防止副作用来说也是一个好主意。
由于这些原因,我仍然认为使用final
,即使您没有与其他程序员一起工作,在某些情况下预期行为需要方法或类禁止覆盖:它澄清意图并防止不良影响。因此,它将加速开发,这也不是一件坏事;)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)