If you overflow a buffer then you'll be writing into memory that contains whatever the operating system put there. One run it could be unused memory, the next run the OS might allocate that space for another variable in your program. Hence, different results from the same code. I didn't say anything about changing the buffer size.
Don't want to ruin your discussion, but we are talking about Java here, buffer overflows cannot happen in Java.