JSR 292 - 支持动态语言的下一步
JSR 292 旨在解决试着将一个方钉-动态结构语言的方法调用-放入一个圆孔-基于静态结构的Java字节码需求的问题。为此为JVM引入新的java字节码指令,invokedynamic,和一新的method linkage mechanism.
方法调用的字节码指令
从最初Java 虚拟器指导书便指出四种方法调用字节码:
invokevirtual
- 调用类的方法. 这是方法调用的典型方式.invokeinterface
- 调用接口的方法.invokestatic
- 调用类的静态方法. 这是唯一一种缺少接收者参数的调用.invokespecial
- 没有接收者引用类型的调用.这种方式的方法调用可以使构造函数,父类方法或私有方法.
这里我们研究两种字节码:invokevirtual,因为它是方法调用最典型的方式;invokeinterface,因为它同新的invokedynamic指令类似。
invokevirtual...待续
阅读(532) | 评论(0) | 转发(0) |