【发布时间】:2012-02-10 08:22:57
【问题描述】:
最近,我正在阅读有关 Java 7 特性的信息,invokedynamic 是最受期待的特性之一。大多数博客/文章从 JVM 实现的角度提供了优势,特别是对于动态类型语言。从应用程序开发人员的角度来看,它对我有何影响?
【问题讨论】:
标签: java jvm java-7 invokedynamic
最近,我正在阅读有关 Java 7 特性的信息,invokedynamic 是最受期待的特性之一。大多数博客/文章从 JVM 实现的角度提供了优势,特别是对于动态类型语言。从应用程序开发人员的角度来看,它对我有何影响?
【问题讨论】:
标签: java jvm java-7 invokedynamic
如果您使用其中一种动态语言编写应用程序,您的应用程序将(可能)运行得更快。尤其是 JRuby 目前大量使用它。
如果您使用 Java 编写,它不会影响您,因为 Java(当前)不使用此指令。我认为有人说 Java 8 语言功能之一可能正在使用它,但我现在找不到有关它的参考,而且 Java 8 现在还有很长的路要走。
【讨论】:
在 Java 中,您可以使用 MethodHandle 作为反射的更快替代方案。您可以阅读更多关于 MethodHandles here 的信息。
请注意 MethodHandle 不使用 invokedynamic,但 MethodHandle 功能是为了提供对 invokedynamic 的支持而开发的。对于 Java 应用程序开发人员而言,MethodHandle 是从对 invokedynamic 的工作中产生的唯一好处。
【讨论】: