最近、私はJava 7の機能について読んでいて、invokedynamicは最も期待されていた機能の1つです。ブログや記事のほとんどは、特に動的に型指定された言語のために、JVM実装の観点から利点を提供します。アプリケーション開発者の視点から、どのように影響を受けますか?invokedynamicとアプリケーション開発者にとっての利点
0
A
答えて
3
これらの動的言語のいずれかでアプリケーションを作成している場合、アプリは(おそらく)より速く実行されます。特に、現在JRubyはこれを大量に使用しています。
Javaで書いている場合は、Javaが(現在)この命令を使用していないため、影響を受けません。私は、Java 8の言語機能の1つがそれを使用しているかもしれないという話があったと思いますが、私はその時点での参照を見つけることができず、とにかくJava 8は遠く離れています。
2
Javaでは、高速リフレクションの代わりにMethodHandleを使用できます。 MethodHandles hereについてもう少し詳しく読むことができます。
MethodHandleはinvokedynamicを使用しませんが、invokedynamicをサポートするためにMethodHandle機能が開発されていることに注意してください。 Javaアプリケーション開発者にとって、MethodHandleはinvokedynamicに向けての作業から生じる唯一の利点です。
この返信は完全に非公開で、削除する必要があります。 – kittylyst
詳細を教えていただけますか? –
Java 8は、ラムダとデフォルトのメソッドを含むかなりの機能を備えたボットの下で、invokedynamicを使用しています – kittylyst