首页 > 其他 > 详细

对lambda表达式的字节码实现个人理解 - 简单描述

时间:2019-11-17 22:36:16      阅读:125      评论:0      收藏:0      [点我收藏+]
  • 暂且抛开具体的代码实现,谈谈个人的理解。
  • 常规的方法调用,具体由哪条指令来执行,实际都是在JVM的规则中就定下来了,比如构造方法使用invokeSpecial,静态方法使用invokeStatic。现在则是通过invokeDynamic延迟确认具体调用哪个方法,将这个最终会调用到哪个方法的决定权交给了代码层来实现,也就是Bootstrap引导方法的逻辑里面。
  • 在这个过程中,有两个重要的点,一是引导方法通过什么来查找到具体要调用的方法,二是找到了方法又要如何去调用。
  • 针对第一个问题,引导方法实际是根据方法签名来找的,每一个方法都会有一个方法签名,包含方法名,返回值,方法参数等。(如果一个动物看起来像鸭子,游起来像鸭子,那么它就是鸭子。。。)
  • 找到方法之后,包装到methodHandle中,执行methodHandle的invokeExact方法。

 

 

 

对lambda表达式的字节码实现个人理解 - 简单描述

原文:https://www.cnblogs.com/alinainai/p/11878360.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!