Recursion in Java
If a function definition is written in such a way that it is called in its own body, then it is called a recursive function. In executing a program, the computer creates what is called the program stack. The program stack is a stack of frames, each frame corresponds to a method invocation. Infinite recursion occurs when there is no base case. It occurs when the base case is never executed. In recursion, fresh memory is allocated during each recursive call. Due to function call overhead in recursion, the recursion works slower than iteration. An infinite recursion occurs when a recursive function calls itself endlessly. This type of condition occurs when there is either no base case or base case is never executed.