Usually the stack will be cleaned on method termination, but if some objects were created they are likely to be in the heap not the stack. The stack is usually used to store small things like parameter references, and scalars (will grow large if heavy use of recursive calls is made). These are small and easy/quick to handle.
What your JVM actually does is down to the JVM developer, but the above is generally true of most.