If you attempt to do this , the compiler interprets it as a recursive call to the procedure 如果试图这样做,编译器会将它解释为对过程的递归调用。
Is useful for specifying whether or not you want the application to be able to inline a recursive call 有助于指定是否希望应用程序能够内联递归调用。默认情况下,该杂注为off 。
Remember : we can t rely on our code to always be running on a jvm that will transform tail - recursive calls 记住:我们不能寄希望于我们的代码会总是运行在会转换尾递归调用的jvm上。
If your jit compiler converts tail - recursive calls to iteration , this program will continue to run indefinitely 如果您的jit编译器把尾递归调用转换成迭代,这个程序将无限期地运行下去。
There is no stack operation error , simply a recursive call that never ends , at least before it runs out of system source 该现象表明是由于堆栈操作错误导致返回失败引起死循环调用撑爆了堆栈。