# What is Recursion in Java?

Recursion in Java is the process in which the method calls itself. These methods are called recursive methods.

We use Recursion when some process needs to be repeated a number of times.

Let’s see some examples:

## Examples of a Recursion in Java

### Recursive method

```  public void printData(int data) {

System.out.println(data);

printData(data);

}
```

See how this method calls itself. In this case, the data value will be printed until we hit the java.lang.StackOverflowError.

As you can guess, this is not a good way to write a recursive method. We need to have the code which will stop the execution when a certain condition is being met, to avoid calling the method infinitely.

```  public static void printData(int data) {

if (data > 0) {
System.out.println(data);
printData(--data);
}

}
```

Now, if we pass the value 5, the method will call itself as long as the value is greater than zero.

```Output:
5
4
3
2
1
```

### Calculate factorial of the given number

```public class Test {

public static void main(String[] args) {

System.out.println(factorial(5));

}

static int factorial(int num) {
if (num == 1) {
return 1;
} else
return (num * factorial(num - 1));
}
}```
Output: 120

### Fibonacci Series for the given number

```public class Test {

public static void main(String args[]) {
int maxNumber = 15;

for (int i = 0; i < maxNumber; i++) {
System.out.print(fibonacci(i) + " ");
}
}

public static int fibonacci(int n) {
if (n == 0) {
return 0;
}
if (n == 1 || n == 2) {
return 1;
}
return fibonacci(n - 2) + fibonacci(n - 1);
}
}```
Output: 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377

That was all about Recursion in Java. Proceed to the next lesson.

Happy coding!