Java Recursion
Recursion in Java is a programming technique where a method calls itself to solve a problem. It's useful for tasks that can be defined in terms of similar subtasks.
How Recursion Works
A recursive method must have a base case to end the recursive calls. Without a base case, the method would call itself indefinitely, leading to a stack overflow error.
Example: Calculating Factorial
RecursionExample.java
public class RecursionExample {
public static void main(String[] args) {
int number = 5;
int result = factorial(number);
System.out.println("Factorial of " + number + " is " + result);
}
public static int factorial(int n) {
if (n == 1) {
return 1; // Base case
} else {
return n * factorial(n - 1); // Recursive call
}
}
}
Advantages of Recursion
- Simplifies code for problems that are naturally recursive (e.g., tree traversals).
- Improves code readability.
Disadvantages of Recursion
- Can lead to high memory usage due to multiple method calls on the stack.
- May be less efficient than iterative solutions.
Key Takeaways
- Recursion involves a method calling itself to solve smaller instances of a problem.
- A base case is essential to prevent infinite recursion.
- Understand when recursion is appropriate and consider alternatives if efficiency is a concern.