Java 8是否有尾调用优化?

时间:2014-04-04 15:09:37

标签: java java-8 tail-call-optimization

我尝试在网上挖掘以解答我的问题。我找到了一些与Project DaVinci相关的文件。这被标记为JSR 292,它与在JVM中包含闭包有关。这个项目是否实现了,它是Java 8的一部分吗?

2 个答案:

答案 0 :(得分:10)

据我所知,Java 8没有尾调用优化。 Afaik它与实际的编译器技巧没有关系,因为它很简单,但为了安全起见保留了一个callstack。但我想用字节码重写器是可能的。

答案 1 :(得分:6)

Java在编译器级别不支持TCO,但可以使用lambda表达式在Java 8中实现它。 它由Venkat Subramaniamin在" Java中的函数编程"中描述。