A recursive method is simply one that calls itself. The simplest kind of recursion goes like this:
That's basically an infinite loop, although it leads to a side effect known as being "out of memory." You'll run out of memory because each time recurse() is called, the currently calling method has to be stored while it waits for the now-called recurse() to do its thing. Since there's no reason for recurse() to ever quit calling itself, it's just a matter of time before you blow up.
To avoid this, a recursive method specifies a condition that allows each called method to return to its calling method, until they're all resolved. For example:
This can be a bit of a mind-bender if you don't know how a process tracks the instructions that it runs, so just let it soak for a while.
------------------
Michael Ernest, co-author of:
The Complete Java 2 Certification Study Guide