A base case of a recursive definition is a case that has an immediate solution.
factorial( 0 ) = 1 <-- base case
factorial( N ) = N * factorial( N-1 )
In the "static view" of recursion, you translate a math-like definition into the Java method definition. You don't think much about what happens when the method runs. Here is the math-like definition of recursion:
factorial( 0 ) = 1 factorial( N ) = N * factorial( N-1 )
And here is part of its translation into a Java method:
Practice thinking statically. Translate the math-like definition into the Java code.
Fill in the blanks.