Recursive Programming
A method in Java can invoke itself; if set up that way, it is called a recursive method
The code of a recursive method must be structured to handle both the base case and the recursive case
Each call to the method sets up a new execution environment, with new parameters and local variables
As always, when the method completes, control returns to the method that invoked it (which may be an earlier invocation of itself)