Recursão

A recursão ocorre quando uma função chama a si mesma para resolver um problema menor até atingir um caso base.

Exemplo: Fatorial

public class RecursaoFatorial {
    public static int fatorial(int n) {
        if (n == 1) {
            return 1; 
        }
        return n * fatorial(n - 1);
    }
 
    public static void main(String[] args) {
        System.out.println(fatorial(5)); 
    }
}

Memória na Recursão

Cada chamada cria um novo quadro na Pilha de Execução (Call Stack). O processo continua até alcançar o caso base, quando as chamadas começam a retornar.

Aplicação Prática