Buenas,
Una función es recursiva si se llama a si misma.
Cita: No entiendo la recursividad,
Es una duda muy genérica. En Google hay cientos de tutoriales y artículos que explican paso a paso la recursividad desde 0.
Cita: tampoco entiendo por que el método actúa como un bucle
La función se llama a si misma con n-1. Esta a su vez se llama a si misma con n-1. Esta a su vez.... y así hasta que llega a 0 y hace return. En ese momento toda la pila de llamadas vuelve a retornar su valor hasta llegar a la original.
Le ejecución sería la siguiente:
1 - factorial (3) llama a factorial(2)
2 - factorial (2) llama a factorial(1)
3 - factorial (1) llama a factorial(0)
4 - factorial (0) devuelve 1
3 - factorial (1) devuelve 1 * 1
2 - factorial (2) devuelve 2 * 1 (1 * 1)
1 - factorial (3) devuelve 3 * 2 (2 * 1)
Resultado: 6
Lo mejor es que depures el código para ver como funciona.
Si no lo entiendes del todo tampoco te agobies. Las funciones recursivas permiten hacer algunas cosas de una forma más elegantes que con bucles, pero no siempre es más claro y sobre todo es mucho menos eficiente. Con el tiempo las encontrarás en muchos códigos, te acostumbrarás a ellas y las entenderás sin pensar mucho en ello...
Un saludo