Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Java

Recursividad en Java: Entendimiento, ejemplos y compensaciones

Recursividad en Java

Esta guía explica los métodos recursivos de Java, recorre un ejemplo clásico de factorial y evalúa los pros y contras de usar recursividad.

En Java, un método que se llama a sí mismo se llama método recursivo, y la técnica general se conoce como recursividad. Una ilustración simple del mundo real son dos espejos enfrentados: cada reflejo es otra imagen del espejo, repitiéndose hasta que la luz se absorbe.


Cómo funciona la recursividad

Recursividad en Java: Entendimiento, ejemplos y compensaciones

En la ilustración anterior, el método recursivo() se invoca desde main() —una llamada normal. Dentro de recursivo(), el mismo método se llama a sí mismo de nuevo, creando una llamada recursiva. Para prevenir bucles infinitos, cada llamada recursiva debe incluir una condición de terminación, típicamente implementada con una sentencia if…else.


Ejemplo: Factorial de un número usando recursividad

class Factorial { static int factorial(int n) { if (n != 0) // condición de terminación return n * factorial(n - 1); // llamada recursiva else return 1; } public static void main(String[] args) { int numero = 4, resultado; resultado = factorial(numero); System.out.println(numero + " factorial = " + resultado); } }

Salida:

4 factorial = 24

El método factorial() se llama desde main() con el argumento numero. Dentro de factorial(), la línea

return n * factorial(n-1);
hace que el método se invoque a sí mismo con un valor decrementado. Empezando con n = 4, las llamadas progresan: 4 → 3 → 2 → 1 → 0. Cuando n llega a 0, la condición if falla, retornando 1. El producto acumulado luego se propaga de vuelta por la pila de llamadas hasta main().


Cómo se ejecuta el programa de factorial

La imagen a continuación ilustra la evolución de la pila de llamadas durante la ejecución.

Recursividad en Java: Entendimiento, ejemplos y compensaciones

Ventajas y desventajas de la recursividad

En general, la recursividad ofrece soluciones elegantes a costa de mayor uso de memoria y posible sobrecarga de rendimiento. Para muchos casos de uso, especialmente aquellos con profundidad limitada, la compensación vale la pena.

Lectura recomendada: ¿Cuáles son las ventajas y desventajas de la recursividad?

Java

  1. Dominar Operadores en Java: Tipos, Sintaxis y Ejemplos Prácticos
  2. Dominando interfaces en Java: Conceptos, implementación y mejores prácticas
  3. Dominando Try‑with‑Resources en Java: Gestión automática de recursos explicada
  4. Anotaciones en Java explicadas: Tipos, ubicación y ejemplos prácticos
  5. Tipos de anotaciones en Java: Guía completa de predefinidas, personalizadas y meta‑anotaciones
  6. Método Java String length(): Cómo obtener el tamaño de un String (Ejemplo)
  7. Entendiendo Java String.charAt(): Sintaxis, tipo de retorno, excepciones y ejemplo práctico
  8. Dominando Java String.endsWith(): Cómo comprobar sufijos de cadena con ejemplos
  9. Dominando el reemplazo de Strings en Java: replace(), replaceAll() y replaceFirst() explicados
  10. Invertir una Cadena en Java Usando Recursión – Guía Paso a Paso
  11. Sobrescritura de Métodos en Java: Personalizando el Comportamiento de la Superclase