Recursividad en Java

Playground

Aqui el codigo se compila y se ejecuta de verdad, con un JDK real. Es el complemento del simulador: el simulador te muestra como funciona la pila, esto te muestra que pasa cuando la llevas al limite.

Motor: Piston, la API publica y gratuita de EMKC. No pide llave ni tarjeta. Su limite es de unas 5 peticiones por segundo para todo el mundo, asi que con un salon entero dandole al boton a la vez vas a ver rechazos. Para clase presencial, pasa a Judge0 autohospedado (instrucciones en el README). El codigo se envia al servidor, no se ejecuta en tu navegador.

Que probar aqui y no en el simulador

El simulador topa la pila a 60 marcos para poder dibujarla. Una JVM real aguanta miles, y ese numero cambia entre ejecuciones por como la maquina virtual acomoda la memoria. Carga la plantilla Reventar la pila a proposito y ejecutala tres veces seguidas: vas a obtener tres cifras distintas.

La plantilla Recursion de cola en Java es la demostracion que cierra el nivel 7. El metodo es recursion de cola perfecta, y aun asi revienta. Si algun estudiante llega diciendo que leyo que Java optimiza eso, esta es la respuesta.

Y en Fibonacci: ingenuo vs memoizado el contraste se mide en milisegundos reales, con n = 35. Ahi es donde deja de ser teoria.