私は自分の質問に答えてもらうために、ウェブ上で掘り下げてみました。Project DaVinciに関連するドキュメントをいくつか見つけました。これは、JVM にクロージャーを含めることに関連する JSR 292 にタグ付けされています。このプロジェクトは実現しましたか? Java 8 の一部ですか?
10717 次
2 に答える
11
私の知る限り、Java 8 には末尾呼び出しの最適化がありません。Afaik は、実際のコンパイラのトリックとは関係ありません。これは単純であるためですが、セキュリティ上の目的でコールスタックを保持するためです。しかし、バイトコード リライタを使えば可能だと思います。
于 2014-04-04T15:13:34.480 に答える
7
Java はコンパイラ レベルで TCO をサポートしていませんが、ラムダ式を使用して Java 8 で実装することは可能です。これについては、Venkat Subramaniamin が「Functional Programming in Java」で説明しています。
于 2015-08-27T07:57:55.943 に答える