strange applet behavior

I have written a moon lander game which can be found here:

[link]www.epikgames.com/launch.php?id=1[/link]

(Instructions: use the arrow keys to power the thrusters left, right, or up. For extra thrust up, use the space bar.)

While testing it, I’ve noticed some strange behavior that happens when I refresh the applet. It’s happened on multiple systems so i’m pretty sure it’s not just a system/browser specific thing. When you play the game, you’ll notice that if you hit the ground with enough force, you’ll explode and little particles will go flying everywhere. If, while there are still particles present in the atmosphere, you pause the applet, (which is done by making the applet lose focus, aka click somewhere outside of your browser window), then refresh the page, the same particles will still be in the atmosphere in the new applet.

So at first this didn’t make ANY sense to me at all. How could objects from a previous instance of my applet be carried over when a new instance of the applet? Then I realised as I was typing this that the ArrayList that held my particle objects was probably static. Then it made a whole lot more sense. Still, this doesn’t feel right to me. Why aren’t the references to all my objects being destroyed when the page is refreshed? Does this mean I could have two browser windows open running the same applet and they would share static variables? Does this seem remotely interesting to anyone else?

EDIT: I tried running the game in two windows and the particles show up in both windows. Cool.

refreshing the page does not completely reset the applet, I believe its just calls the destroy() method and then when the page reloads the init() method will be called again.

I think you can reset the applet in IE by holding down shift and pressing refresh.

VMs in browsers generally avoid stopping and restarting the whole VM because of start-up costs.,