关于final函数为什么高效 在Java中 所有的函数都是后期绑定(在执行期中函数的调用会找到函数的本体)的 唯独以final声明的函数不是后期绑定 我感觉应该是前期绑定(在编译,连接中函数的调用就已经找到了函数的本体)的 所以final函数执行起来高效 今天看书学习final 把自己的理解发出来 希望对和我一样的新手有所帮助 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 final方法可以做inline处理。可以加快类型检查的速度。同样的优化还可以应用于private方法和static方法,并不是你所谓的“唯独”。 为什么会加快类型检查的速度 主要是因为final函数的前期绑定 做行内处理也是这个原因 我的观点 不知道对不对private方法static方法在执行时 还是要进行类型检查 而final函数在编译期间就已经做完了类型检查的工作在JAVA中确实只有final函数不是后期绑定的 这个是理论上的, 实际上一般的IDE比如eclipse有编译选项的。 针对final会让你选择以inline的方式编译还是怎样编译, 默认不是inline的。你可以去找找。 是否inline是jit编译器处理的吧? 不知道为什么这么说呢?难道private的和static的会放到后期去帮定吗?编译的时候都直接直接invokespecial和invokestatic指令了。 将方法声明为final那有两个原因,第一就是说明你已经知道这个方法提供的功能已经满足你要求,不需要进行扩展,并且也不允许任何从此类继承的类来覆写这个方法,但是继承仍然可以继承这个方法,也就是说可以直接使用。第二就是允许编译器将所有对此方法的调用转化为inline(行内)调用的机制,它会使你在调用final方法时,直接将方法主体插入到调用处,而不是进行例行的方法调用,例如保存断点,压栈等,这样可能会使你的程序效率有所提高,然而当你的方法主体非常庞大时,或你在多处调用此方法,那么你的调用主体代码便会迅速膨胀,可能反而会影响效率,所以你要慎用final进行方法定义 final方法可以继承吗?貌似不可以吧 类似于inline<------------------------------------------->JAVA免费开源论坛http://www.jsprun.net 【软考书籍求推荐】 请教各位一道算法题!!!请大家帮帮忙 毕业的苦恼:做JAVA到底需不需要研究生? 还请大家帮忙!关于java构造函数的一个小问题 关于读取整个目录的问题 基础问题? 遇到一致命错误,请大家帮忙!!!! 简单问题,如何解决,请高手指点 求助,英文操作系统下JEditorPane中文显示为方块问题。 光标定位偏移 两种创建方法有点不明白 值不值得做
可以加快类型检查的速度。
同样的优化还可以应用于private方法和static方法,并不是你所谓的“唯独”。
为什么会加快类型检查的速度 主要是因为final函数的前期绑定 做行内处理也是这个原因 我的观点 不知道对不对
private方法static方法在执行时 还是要进行类型检查 而final函数在编译期间就已经做完了类型检查的工作在JAVA中确实只有final函数不是后期绑定的
你可以去找找。
难道private的和static的会放到后期去帮定吗?
编译的时候都直接直接invokespecial和invokestatic指令了。
JAVA免费开源论坛http://www.jsprun.net