Learning Hub Logo
Java
  • Introdução ao Java
  • Como instalar o Java
  • Primeiro programa
  • Sintaxe básica
  • Comentários
  • Variáveis
  • Tipos de dados
  • Type Casting
  • Operadores aritméticos
  • Operadores de atribuição
  • Operadores de comparação
  • Operadores lógicos
  • Strings
  • Métodos de String
  • Math
  • Booleanos
  • Condicionais
  • Switch
  • Loop: while e do-while
  • Loop: for
  • Break e Continue
  • Arrays
  • Arrays multidimensionais
  • Métodos
  • Parâmetros e sobrecarga de métodos
  • Escopo de variáveis
  • Recursão
  • Introdução a POO
  • Classes e objetos
  • Atributos de classe
  • Métodos de classe
  • Construtores
  • Modificadores de acesso
  • Encapsulamento
  • Herança
  • Polimorfismo
  • Classes abstratas
  • Interfaces
  • Enums
  • Entrada do usuário
  • Datas
  • ArrayList
  • HashMap
  • Exceções
  • Expressões Lambda

Sobre Diego Pinho

Professor especialista em tecnologia com mais de 10 anos de experiência. Autor de livros técnicos e criador de cursos que já impactaram milhares de estudantes.

Visite meu site principal →

Serviços

  • Área do Aluno
  • Solicite um orçamento
  • Trabalhe Conosco

Redes Sociais

  • Youtube
  • TikTok
  • Instagram
  • LinkedIn

Links

  • Site Institucional
  • Nosso Blog
  • Cursos Online
  • Livros Publicados

Professor Diego Pinho

Educação, Tecnologia e IA © 2026

Discord
JavaRecursão
1 min de leitura

Recursão

Como funciona a recursão em Java

Recursão

Um método recursivo é aquele que chama a si mesmo dentro do próprio corpo. É uma técnica usada para resolver problemas que podem ser divididos em versões menores do mesmo problema.

Exemplo clássico: fatorial

O fatorial de um número é a multiplicação dele por todos os números menores até 1. Por exemplo, o fatorial de 4 é 4 * 3 * 2 * 1.

Carregando...

Caso base

Toda função recursiva precisa de um caso base, uma condição que interrompe as chamadas. Sem ele, o método chamaria a si mesmo indefinidamente, até o programa travar com um erro de StackOverflowError.

Carregando...

Como a recursão funciona por dentro

Para fatorial(4), o Java vai chamando o método repetidamente até atingir o caso base, e depois resolve as multiplicações de trás para frente.

fatorial(4) = 4 * fatorial(3)
fatorial(3) = 3 * fatorial(2)
fatorial(2) = 2 * fatorial(1)
fatorial(1) = 1 (caso base)

Resultado: 4 * 3 * 2 * 1 = 24

Recursão ou loop?

Quase tudo que é feito com recursão também pode ser feito com loops, e geralmente os loops são mais eficientes em Java. A recursão se torna mais natural em problemas que já são, por definição, divididos em partes menores, como percorrer estruturas em árvore ou calcular sequências matemáticas.

AnteriorEscopo de variáveisPróximo Introdução a POO