In Java the de nition of a \program" is a bit fuzzy. A Java applet is essentially a Java application (i.e. program) that can be executed by a Java enabled Web browser (i.e. an OS). An applet running inside of a browser was intended to be analogous to a conventional application running under on OS, hence the netcentric \browser is your OS" model. However, as currently implemented this analogy breaks down with regard to the system resources allocated for classes and in particular for static elds in classes (i.e. class variables) when the class was loaded as part of an applet. Without class unloading, a long running Java application such as a browser is like an OS that does not release memory resources allocated for application code space when the application terminates. With class unloading, as currentlyimplemented,the semanticsof static elds in classes are broken. In this paper we detail the problemand provide a solution. The solution combines restricting when classes can be ...
Charles E. McDowell, Elizabeth A. Baldwin