Java编程技巧之final


        关键词final在Java中有多重用途,既可被用于instance变量、static变量
也可用于classes或methods,表示不允许客户覆写它们。
        当一个方法被声明成final,在两个领域中显得有位重要:
  1. class设计
  2. 运行期性能
        在程序设计里,有时我们不希望我们的方法被重写或覆盖,final关键字保证了这一点。
final关键字是怎么影响性能的呢?
        当我们的方法被声明成static,final和private, 此方法将成为Inlining(内联函数)的候选者。此类方法可以在编译期被静态决议(staticallyresolved),而不需要动态决议(dynamicResolution)。以方法本体(methodbody)替换方法调用(methodcall)会使代码执行速度更快。
        将方法声明为static、final和private会带来一些缺点:这样的方法无法通过Subclassing(子类化)进行扩展。这就束缚了derived class通过class函数做事情的机会。inlined方法只有在被多次调用的情况下,才会获得令人侧目的性能提升。这是因为当一个方法被inline后,就不再需要负担方法调用的额外开销。因此,方法被调用愈多次,节省就愈多。
        不过inlining也可能使你的代码体积变大。如果这个方法有许多调用点,.class文件的体积便会膨胀,这是因为原本只需存储一份的函数码,由于inline而在所有调用点被复制了一份。


Kyle Wang

posted on 2012-10-15 22:23 王树东 阅读(249) 评论(0)  编辑  收藏 所属分类: Java Skills Learning and Sharing


只有注册用户登录后才能发表评论。


网站导航:
 
<2012年10月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

导航

统计

公告

常用链接

留言簿

随笔分类(17)

随笔档案(15)

文章分类(4)

文章档案(5)

收藏夹(4)

Algorithm

Design

Environment Setup

Installer

Maven

MINA

OS

Skills for Java

VIM

搜索

最新评论

阅读排行榜

评论排行榜