Tail Recursion

What is Tail Recursion?

A recursive call in the the last call is recursive call. The benefit of the last call is that the stack does not have to remember the local variables (an optimization generally done by runtimes)

What is the benefit?

Since iteration is generally better than recursion, if one uses tail iteration, it has minimum impact (on stack memory). Note: If only runtime supports optimizations.

Does Java Support Tail Recursion?

Java as language definitely supports Tail recursion, but JVM does not do Tail Recursion Optimizations. Why??