当前位置 : 主页 > 编程语言 > java >

Kotlin内存陷阱inline使用技巧示例详解

来源:互联网 收集:自由互联 发布时间:2023-01-30
目录 引言 错误示例 推荐示例 小结 总结 引言 inline ,翻译过来为 内联 ,在 Kotlin 中,一般建议用于 高阶函数 中,目的是用来弥补其运行时的 额外开销。 其原理也比较简单,在调用时
目录
  • 引言
  • 错误示例
  • 推荐示例
    • 小结
  • 总结

    引言

    inline ,翻译过来为 内联 ,在 Kotlin 中,一般建议用于 高阶函数 中,目的是用来弥补其运行时的 额外开销。

    其原理也比较简单,在调用时将我们的代码移动到调用处使用,从而降低方法调用时的 栈帧 层级。

    栈帧: 指的是虚拟机在进行方法调用和方法执行时的数据结构,每一个栈帧里都包含了相应的数据,比如 局部参数,操作数栈等等。

    Jvm在执行方法时,每执行一个方法会产生一个栈帧,随后将其保存到我们当前线程所对应的栈里,方法执行完毕时再将此方法出栈,

    所以内联后就相当于省了一个栈帧调用。

    如果上述描述中,你只记住了后半句,降低栈帧 ,那么此时你可能已经陷入了一个使用陷阱?

    错误示例

    如下截图中所示,我们随便创建了一个方法,并增加了 inline 关键字:

    观察截图会发现,此时IDE已经给出了提示,它建议你移除 inline , Why? 为什么呢?

    上一篇:Java利用配置重试策略解决超时问题
    下一篇:没有了
    网友评论