Java内联函数
Posted cynchanpin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java内联函数相关的知识,希望对你有一定的参考价值。
1.内联函数就是指函数在被调用的地方直接展开,编译器在调用时不用像一般函数那样,參数压栈,返回时參数出栈以及资源释放等,这样提高了程序运行速度。
2.Java语言中有一个keywordfinal来指明那个函数是内联的,例:
public final void doSomething() {
// to do something
}
该方法在被调用时。会在调用处直接展开使用,从而提高程序运行速度。
此外finalkeyword另一个作用,防止doSomething方法在子类中被覆盖。假设你希望doSomething是一个终于行为的话。那它应该被设计成final。
内联不一定好。当被指定为内联的方法体非常大时,展开的开销可能就已经超过了普通函数调用调用的时间。引入了内联反而减少了性能,由于在选择这个keyword应该谨慎些,只是,在以后高版本号的JVM中,在处理内联时做出了优化,它会依据方法的规模来确定是否展开调用。
以上是关于Java内联函数的主要内容,如果未能解决你的问题,请参考以下文章
Kotlin函数 ⑦ ( 内联函数 | Lambda 表达式弊端 | “ 内联 “ 机制避免内存开销 - 将使用 Lambda 表达式作为参数的函数定义为内联函数 | 内联函数本质 - 宏替换 )