Originally posted by Peter Primrose:
a. once it's out the loop the stack is free
Agreed on all but this. Again, extrapolating from C/C++, the stack is only unrolled when the method returns -- not partially during the method execution. It's certainly possible to partially unroll the stack after the loop, but I doubt the JVM does this (and you wouldn't count on it anyway since it's not part of the specification) since it adds complexity for little gain.
I do believe, however, that if you had another loop with a boolean variable inside it, the JVM would reuse the same space in the stack for both variables since they aren't used at the same time. Again, this is another optimization left up to the compiler or JVM.
Ilja's advice takes precedence above all that: write clear code that expresses your intentions first.