Reloading clears all static variables and starts over again by constructing a new instance of the applet and calling its init() method. Depending on the platform reload may or may not reload the byte code from a .class file on the disk or on the network. Restarting an applet just calls its start() method. It does not call init(), the constructor, or reload the byte codes.