码迷,mamicode.com
首页 > 编程语言 > 详细

Java之内联函数

时间:2014-12-02 16:38:11      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   ar   color   os   使用   sp   

 以前用过C++,知道它里面有一个内联函数这个概念,一般情况用inline关键字修饰,在C++定义类时,那种写中Class定义里面的函数,也被编译器当做内联函数处理。 
    
    说了这么多,还没说什么是内联函数。所谓内联函数就是指函数在被调用的地方直接展开,编译器在调用时不用像一般函数那样,参数压栈,返回时参数出栈以及资源释放等,这样提高了程序执行速度。 
    
    现在该说Java了,对应Java语言中也有一个关键字final来指明那个函数是内联的,例: 
Java代码  bubuko.com,布布扣
  1. public final void doSomething() {  
  2.         // to do something  
  3. }  


    该方法在被调用时,会在调用处直接展开使用,从而提高程序执行速度。此外final关键字还有一个作用,防止doSomething方法在子类中被覆盖,如果你希望doSomething是一个最终行为的话,那它应该被设计成final。 
    

    内联不一定好,当被指定为内联的方法体很大时,展开的开销可能就已经超过了普通函数调用调用的时间,引入了内联反而降低了性能,因为在选择这个关键字应该慎重些,不过,在以后高版本的JVM中,在处理内联时做出了优化,它会根据方法的规模来确定是否展开调用。


--------------------------------------------------------华丽的分界线------------------------------------------------------- 

bubuko.com,布布扣

doug lea写类库是各种优化方法都会想到呀。

Java之内联函数

标签:style   blog   http   io   ar   color   os   使用   sp   

原文地址:http://blog.csdn.net/aigoogle/article/details/41679903

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!